@@ -60,50 +60,148 @@ func aCaller() {
60
60
// CHECK-NEXT: RelCall | aCaller() | s:F14swift_ide_test7aCallerFT_T_
61
61
}
62
62
63
- struct aStruct {
63
+ // RelationChildOf, Implicit
64
+ struct AStruct {
64
65
var x : Int
66
+ // CHECK: [[@LINE-1]]:7 | instance-property/Swift | x | s:vV14swift_ide_test7AStruct1xSi | Def,RelChild | rel: 1
67
+ // CHECK-NEXT: RelChild | AStruct | s:V14swift_ide_test7AStruct
68
+
65
69
mutating func aMethod( ) {
70
+ // CHECK: [[@LINE-1]]:17 | instance-method/Swift | aMethod() | s:FV14swift_ide_test7AStruct7aMethodFT_T_ | Def,RelChild | rel: 1
71
+ // CHECK-NEXT: RelChild | AStruct | s:V14swift_ide_test7AStruct
72
+
66
73
x += 1
67
- // CHECK: [[@LINE-1]]:5 | instance-property/Swift | x | s:vV14swift_ide_test7aStruct1xSi | Ref,Read,Writ | rel: 0
68
- // CHECK: [[@LINE-2]]:5 | accessor(get)/Swift | getter:x | s:FV14swift_ide_test7aStructg1xSi | Ref,Call,Impl,RelRec,RelCall | rel: 2
69
- // CHECK-NEXT: RelCall | x | s:vV14swift_ide_test7aStruct1xSi
70
- // CHECK-NEXT: RelRec | aStruct | s:V14swift_ide_test7aStruct
71
- // CHECK: [[@LINE-5]]:5 | accessor(set)/Swift | setter:x | s:FV14swift_ide_test7aStructs1xSi | Ref,Call,Impl,RelRec,RelCall | rel: 2
72
- // CHECK-NEXT: RelCall | x | s:vV14swift_ide_test7aStruct1xSi
73
- // CHECK-NEXT: RelRec | aStruct | s:V14swift_ide_test7aStruct
74
+ // CHECK: [[@LINE-1]]:5 | instance-property/Swift | x | s:vV14swift_ide_test7AStruct1xSi | Ref,Read,Writ | rel: 0
75
+ // CHECK: [[@LINE-2]]:5 | accessor(get)/Swift | getter:x | s:FV14swift_ide_test7AStructg1xSi | Ref,Call,Impl,RelRec,RelCall | rel: 2
76
+ // CHECK-NEXT: RelCall | x | s:vV14swift_ide_test7AStruct1xSi
77
+ // CHECK-NEXT: RelRec | AStruct | s:V14swift_ide_test7AStruct
78
+ // CHECK: [[@LINE-5]]:5 | accessor(set)/Swift | setter:x | s:FV14swift_ide_test7AStructs1xSi | Ref,Call,Impl,RelRec,RelCall | rel: 2
79
+ // CHECK-NEXT: RelCall | x | s:vV14swift_ide_test7AStruct1xSi
80
+ // CHECK-NEXT: RelRec | AStruct | s:V14swift_ide_test7AStruct
74
81
// CHECK: [[@LINE-8]]:7 | infix-operator/Swift | +=(_:_:) | s:Fsoi2peFTRSiSi_T_ | Ref,Call,RelCall | rel: 1
75
- // CHECK-NEXT: RelCall | aMethod() | s:FV14swift_ide_test7aStruct7aMethodFT_T_
82
+ // CHECK-NEXT: RelCall | aMethod() | s:FV14swift_ide_test7AStruct7aMethodFT_T_
83
+ }
84
+
85
+ // RelationChildOf, RelationAccessorOf
86
+ subscript( index: Int ) -> Int {
87
+ // CHECK: [[@LINE-1]]:3 | subscript/Swift | subscript(_:) | s:iV14swift_ide_test7AStruct9subscriptFSiSi | Def,RelChild | rel: 1
88
+ // CHECK-NEXT: RelChild | AStruct | s:V14swift_ide_test7AStruct
89
+
90
+ get {
91
+ // CHECK: [[@LINE-1]]:5 | accessor(get)/Swift | getter:subscript(_:) | s:FV14swift_ide_test7AStructg9subscriptFSiSi | Def,RelChild,RelAcc | rel: 1
92
+ // CHECK-NEXT: RelChild,RelAcc | subscript(_:) | s:iV14swift_ide_test7AStruct9subscriptFSiSi
93
+
94
+ return x
95
+ }
96
+ set {
97
+ // CHECK: [[@LINE-1]]:5 | accessor(set)/Swift | setter:subscript(_:) | s:FV14swift_ide_test7AStructs9subscriptFSiSi | Def,RelChild,RelAcc | rel: 1
98
+ // CHECK-NEXT: RelChild,RelAcc | subscript(_:) | s:iV14swift_ide_test7AStruct9subscriptFSiSi
99
+
100
+ x = newValue
101
+ }
76
102
}
77
103
}
78
104
79
- class aClass {
80
- var y : aStruct ;
105
+ class AClass {
106
+ var y : AStruct ;
107
+ var z : [ Int ]
81
108
82
109
init ( x: Int ) {
83
- y = aStruct ( x: x)
110
+ y = AStruct ( x: x)
111
+ self . z = [ 1 , 2 , 3 ]
112
+ }
113
+
114
+ subscript( index: Int ) -> Int {
115
+ get {
116
+ return z [ 0 ]
117
+ }
118
+ set {
119
+ z [ 0 ] = newValue
120
+ }
121
+ }
122
+
123
+ func foo( ) -> Int {
124
+ return z [ 0 ]
84
125
}
85
126
}
86
127
87
- var anInstance = aClass ( x: 1 )
88
- // CHECK: [[@LINE-1]]:18 | class/Swift | aClass | s:C14swift_ide_test6aClass | Ref | rel: 0
89
- // CHECK: [[@LINE-2]]:18 | constructor/Swift | init(x:) | s:FC14swift_ide_test6aClasscFT1xSi_S0_ | Ref,Call | rel: 0
128
+ protocol AProtocol {
129
+ func foo( ) -> Int
130
+ // CHECK: [[@LINE-1]]:8 | instance-method/Swift | foo() | s:FP14swift_ide_test9AProtocol3fooFT_Si | Def,RelChild | rel: 1
131
+ // CHECK-NEXT: RelChild | AProtocol | s:P14swift_ide_test9AProtocol
132
+ }
133
+
134
+ // RelationBaseOf, RelationOverrideOf
135
+ class ASubClass : AClass , AProtocol {
136
+ // CHECK: [[@LINE-1]]:7 | class/Swift | ASubClass | s:C14swift_ide_test9ASubClass | Def | rel: 0
137
+ // CHECK: [[@LINE-2]]:19 | class/Swift | AClass | s:C14swift_ide_test6AClass | Ref,RelBase | rel: 1
138
+ // CHECK-NEXT: RelBase | ASubClass | s:C14swift_ide_test9ASubClass
139
+ // CHECK: [[@LINE-4]]:27 | protocol/Swift | AProtocol | s:P14swift_ide_test9AProtocol | Ref,RelBase | rel: 1
140
+ // CHECK-NEXT: RelBase | ASubClass | s:C14swift_ide_test9ASubClass
141
+
142
+ override func foo( ) -> Int {
143
+ // CHECK: [[@LINE-1]]:17 | instance-method/Swift | foo() | s:FC14swift_ide_test9ASubClass3fooFT_Si | Def,RelChild,RelOver | rel: 3
144
+ // CHECK-NEXT: RelOver | foo() | s:FC14swift_ide_test6AClass3fooFT_Si
145
+ // CHECK-NEXT: RelOver | foo() | s:FP14swift_ide_test9AProtocol3fooFT_Si
146
+ // CHECK-NEXT: RelChild | ASubClass | s:C14swift_ide_test9ASubClass
147
+ return 1
148
+ }
149
+ }
90
150
91
- anInstance. y. aMethod ( )
92
- // CHECK: [[@LINE-1]]:1 | variable/Swift | anInstance | s:v14swift_ide_test10anInstanceCS_6aClass | Ref,Read | rel: 0
93
- // CHECK: [[@LINE-2]]:12 | instance-property/Swift | y | s:vC14swift_ide_test6aClass1yVS_7aStruct | Ref,Read,Writ | rel: 0
94
- // CHECK: [[@LINE-3]]:14 | instance-method/Swift | aMethod() | s:FV14swift_ide_test7aStruct7aMethodFT_T_ | Ref,Call | rel: 0
95
-
96
- // Dynamic + Call
97
- // Implicit
98
-
99
- // ---- RELATIONS --------------------------------------------------------------
100
-
101
- // RelationChildOf
102
- // RelationBaseOf
103
- // RelationOverrideOf
104
- // RelationReceivedBy
105
- // RelationCalledBy
106
151
// RelationExtendedBy
107
- // RelationAccessorOf
152
+ // FIXME give extensions their own USR like ObjC?
153
+ extension AClass {
154
+ // CHECK: [[@LINE-1]]:11 | extension(extClass)/Swift | AClass | s:C14swift_ide_test6AClass | Def | rel: 0
155
+ // CHECK: [[@LINE-2]]:11 | class/Swift | AClass | s:C14swift_ide_test6AClass | Ref,RelExt | rel: 1
156
+ // CHECK-NEXT: RelExt | AClass | s:C14swift_ide_test6AClass
157
+
158
+ func bar( ) -> Int { return 2 }
159
+ // CHECK: [[@LINE-1]]:8 | instance-method/Swift | bar() | s:FC14swift_ide_test6AClass3barFT_Si | Def,RelChild | rel: 1
160
+ // CHECK-NEXT: RelChild | AClass | s:C14swift_ide_test6AClass
161
+ }
162
+
163
+ var anInstance = AClass ( x: 1 )
164
+ // CHECK: [[@LINE-1]]:18 | class/Swift | AClass | s:C14swift_ide_test6AClass | Ref | rel: 0
165
+ // CHECK: [[@LINE-2]]:18 | constructor/Swift | init(x:) | s:FC14swift_ide_test6AClasscFT1xSi_S0_ | Ref,Call | rel: 0
166
+
167
+ anInstance. y. x = anInstance. y. x
168
+ // CHECK: [[@LINE-1]]:1 | variable/Swift | anInstance | s:v14swift_ide_test10anInstanceCS_6AClass | Ref,Read | rel: 0
169
+ // CHECK: [[@LINE-2]]:12 | instance-property/Swift | y | s:vC14swift_ide_test6AClass1yVS_7AStruct | Ref,Read,Writ | rel: 0
170
+ // CHECK: [[@LINE-3]]:14 | instance-property/Swift | x | s:vV14swift_ide_test7AStruct1xSi | Ref,Writ | rel: 0
171
+ // CHECK: [[@LINE-4]]:18 | variable/Swift | anInstance | s:v14swift_ide_test10anInstanceCS_6AClass | Ref,Read | rel: 0
172
+ // CHECK: [[@LINE-5]]:29 | instance-property/Swift | y | s:vC14swift_ide_test6AClass1yVS_7AStruct | Ref,Read | rel: 0
173
+ // CHECK: [[@LINE-6]]:31 | instance-property/Swift | x | s:vV14swift_ide_test7AStruct1xSi | Ref,Read | rel: 0
174
+
175
+ anInstance. y. aMethod ( )
176
+ // CHECK: [[@LINE-1]]:1 | variable/Swift | anInstance | s:v14swift_ide_test10anInstanceCS_6AClass | Ref,Read | rel: 0
177
+ // CHECK: [[@LINE-2]]:12 | instance-property/Swift | y | s:vC14swift_ide_test6AClass1yVS_7AStruct | Ref,Read,Writ | rel: 0
178
+ // CHECK: [[@LINE-3]]:14 | instance-method/Swift | aMethod() | s:FV14swift_ide_test7AStruct7aMethodFT_T_ | Ref,Call | rel: 0
179
+
180
+ // FIXME Write role of z occurrence on the RHS?
181
+ anInstance. z [ 1 ] = anInstance. z [ 0 ]
182
+ // CHECK: [[@LINE-1]]:1 | variable/Swift | anInstance | s:v14swift_ide_test10anInstanceCS_6AClass | Ref,Read | rel: 0
183
+ // CHECK: [[@LINE-2]]:12 | instance-property/Swift | z | s:vC14swift_ide_test6AClass1zGSaSi_ | Ref,Read,Writ | rel: 0
184
+ // CHECK: [[@LINE-3]]:19 | variable/Swift | anInstance | s:v14swift_ide_test10anInstanceCS_6AClass | Ref,Read | rel: 0
185
+ // CHECK: [[@LINE-4]]:30 | instance-property/Swift | z | s:vC14swift_ide_test6AClass1zGSaSi_ | Ref,Read,Writ | rel: 0
186
+
187
+ let otherInstance = AStruct ( x: 1 )
188
+ // CHECK: [[@LINE-1]]:21 | struct/Swift | AStruct | s:V14swift_ide_test7AStruct | Ref | rel: 0
189
+
190
+ let _ = otherInstance [ 0 ]
191
+ // CHECK: [[@LINE-1]]:9 | variable/Swift | otherInstance | s:v14swift_ide_test13otherInstanceVS_7AStruct | Ref,Read | rel: 0
192
+ // CHECK: [[@LINE-2]]:22 | subscript/Swift | subscript(_:) | s:iV14swift_ide_test7AStruct9subscriptFSiSi | Ref,Read | rel: 0
193
+
194
+ let _ = anInstance [ 0 ]
195
+ // CHECK: [[@LINE-1]]:9 | variable/Swift | anInstance | s:v14swift_ide_test10anInstanceCS_6AClass | Ref,Read | rel: 0
196
+ // CHECK: [[@LINE-2]]:19 | subscript/Swift | subscript(_:) | s:iC14swift_ide_test6AClass9subscriptFSiSi | Ref,Read | rel: 0
197
+
198
+ let aSubInstance : AClass = ASubClass ( x: 1 )
199
+ // CHECK: [[@LINE-1]]:5 | variable/Swift | aSubInstance | s:v14swift_ide_test12aSubInstanceCS_6AClass | Def | rel: 0
200
+ // CHECK: [[@LINE-2]]:28 | class/Swift | ASubClass | s:C14swift_ide_test9ASubClass | Ref | rel: 0
201
+
202
+ // Dynamic, RelationReceivedBy
203
+ let _ = aSubInstance. foo ( )
204
+ // CHECK: [[@LINE-1]]:9 | variable/Swift | aSubInstance | s:v14swift_ide_test12aSubInstanceCS_6AClass | Ref,Read | rel: 0
205
+ // CHECK: [[@LINE-2]]:22 | instance-method/Swift | foo() | s:FC14swift_ide_test6AClass3fooFT_Si | Ref,Call,Dyn,RelRec | rel: 1
206
+ // CHECK-NEXT: RelRec | AClass | s:C14swift_ide_test6AClass
108
207
109
- // ---- ERRONEOUS --------------------------------------------------------------
0 commit comments