package ast import ( "testing" ) func TestObjCMethodDecl(t *testing.T) { nodes := map[string]testNode{ `0x7f92a58a7570 col:1 - isEqual: 'BOOL':'signed char'`: testNode{&ObjCMethodDecl{ Addr: 0x7f92a58a7570, Pos: NewPositionFromString("line:17:1, col:27"), Position2: "", Name: "isEqual", Type: "BOOL", Type2: "", ClassMethod: false, Parameters: []string{"isEqual"}, Implicit: false, Attr: []string{""}, ChildNodes: []Node{}, }, 0x7f92a58a7570, NewPositionFromString("line:17:1, col:27"), []Node{}, }, `0x7f92a58a7978 col:1 - self 'instancetype':'id'`: testNode{&ObjCMethodDecl{ Addr: 0x7f92a58a7978, Pos: NewPositionFromString("/usr/include/objc/NSObject.h:22:1, col:21"), Position2: "", Name: "self", Type: "instancetype", Type2: "", ClassMethod: false, Parameters: []string{}, Implicit: false, Attr: []string{""}, ChildNodes: []Node{}, }, 0x7f92a58a7978, NewPositionFromString("/usr/include/objc/NSObject.h:22:1, col:21"), []Node{}, }, `0x7f92a58a82b0 col:1 - respondsToSelector: 'BOOL':'signed char'`: testNode{&ObjCMethodDecl{ Addr: 0x7f92a58a82b0, Pos: NewPositionFromString("line:34:1, col:42"), Position2: "", Name: "respondsToSelector", Type: "BOOL", Type2: "", ClassMethod: false, Parameters: []string{"respondsToSelector"}, Implicit: false, Attr: []string{""}, ChildNodes: []Node{}, }, 0x7f92a58a82b0, NewPositionFromString("line:34:1, col:42"), []Node{}, }, `0x7f92a58a82b0 col:1 + instancesRespondToSelector: 'BOOL':'signed char'`: testNode{&ObjCMethodDecl{ Addr: 0x7f92a58a82b0, Pos: NewPositionFromString("line:34:1, col:42"), Position2: "", Name: "instancesRespondToSelector", Type: "BOOL", Type2: "", ClassMethod: true, Parameters: []string{"instancesRespondToSelector"}, Implicit: false, Attr: []string{""}, ChildNodes: []Node{}, }, 0x7f92a58a82b0, NewPositionFromString("line:34:1, col:42"), []Node{}, }, `0x7f92a58a7cd8 col:1 - performSelector:withObject:withObject: 'id':'id'`: testNode{&ObjCMethodDecl{ Addr: 0x7f92a58a7cd8, Pos: NewPositionFromString("line:26:1, col:83"), Position2: "", Name: "performSelector", Type: "id", Type2: "", ClassMethod: false, Parameters: []string{"performSelector", "withObject", "withObject"}, Implicit: false, Attr: []string{""}, ChildNodes: []Node{}, }, 0x7f92a58a7cd8, NewPositionFromString("line:26:1, col:83"), []Node{}, }, `0x7f92a4459318 col:71 implicit - writableTypeIdentifiersForItemProvider 'NSArray * _Nonnull':'NSArray *'`: testNode{&ObjCMethodDecl{ Addr: 0x7f92a4459318, Pos: NewPositionFromString("line:41:71"), Position2: "", Name: "writableTypeIdentifiersForItemProvider", Type: `NSArray * _Nonnull`, Type2: "", ClassMethod: false, Parameters: []string{}, Implicit: true, Attr: []string{""}, ChildNodes: []Node{}, }, 0x7f92a4459318, NewPositionFromString("line:41:71"), []Node{}, }, } runNodeTests(t, nodes) }