@@ -86,3 +86,44 @@ extension Wrapper2.NonGenericWrapped where Wrapper2Param: P1 {
86
86
extension MyUnknownType where Wrapper2Param: P1 {
87
87
func foo( x: Wrapper2Param ) { }
88
88
}
89
+
90
+ // MARK: - Test indexing a generic initializer
91
+
92
+ struct A < T> { // CHECK: [[@LINE]]:8 | struct/Swift | A | [[A_USR:.*]] | Def | rel: 0
93
+ init ( value: T ) { } // CHECK: [[@LINE]]:3 | constructor/Swift | init(value:) | [[A_init_USR:.*]] | Def,RelChild | rel: 1
94
+ }
95
+
96
+ // CHECK: [[@LINE+2]]:5 | struct/Swift | A | [[A_USR]] | Ref | rel: 0
97
+ // CHECK: [[@LINE+1]]:5 | constructor/Swift | init(value:) | [[A_init_USR]] | Ref,Call | rel: 0
98
+ _ = A ( value: 1 )
99
+ // CHECK: [[@LINE+3]]:5 | struct/Swift | A | [[A_USR]] | Ref | rel: 0
100
+ // CHECK: [[@LINE+2]]:5 | constructor/Swift | init(value:) | [[A_init_USR]] | Ref,Call | rel: 0
101
+ // CHECK: [[@LINE+1]]:7 | struct/Swift | Int | s:Si | Ref | rel: 0
102
+ _ = A < Int > ( value: 1 )
103
+
104
+ enum B { // CHECK: [[@LINE]]:6 | enum/Swift | B | [[B_USR:.*]] | Def | rel: 0
105
+ struct Nested < T> { // CHECK: [[@LINE]]:10 | struct/Swift | Nested | [[B_Nested_USR:.*]] | Def,RelChild | rel: 1
106
+ init ( value: T ) { } // CHECK: [[@LINE]]:5 | constructor/Swift | init(value:) | [[B_Nested_init_USR:.*]] | Def,RelChild | rel: 1
107
+ }
108
+ }
109
+
110
+ // CHECK: [[@LINE+3]]:5 | enum/Swift | B | [[B_USR]] | Ref | rel: 0
111
+ // CHECK: [[@LINE+2]]:7 | struct/Swift | Nested | [[B_Nested_USR]] | Ref | rel: 0
112
+ // CHECK: [[@LINE+1]]:7 | constructor/Swift | init(value:) | [[B_Nested_init_USR]] | Ref,Call | rel: 0
113
+ _ = B . Nested ( value: 1 )
114
+ // CHECK: [[@LINE+4]]:5 | enum/Swift | B | [[B_USR]] | Ref | rel: 0
115
+ // CHECK: [[@LINE+3]]:7 | struct/Swift | Nested | [[B_Nested_USR]] | Ref | rel: 0
116
+ // CHECK: [[@LINE+2]]:7 | constructor/Swift | init(value:) | [[B_Nested_init_USR]] | Ref,Call | rel: 0
117
+ // CHECK: [[@LINE+1]]:14 | struct/Swift | Int | s:Si | Ref | rel: 0
118
+ _ = B . Nested< Int> ( value: 1 )
119
+
120
+ enum C { // CHECK: [[@LINE]]:6 | enum/Swift | C | [[C_USR:.*]] | Def | rel: 0
121
+ struct Nested { // CHECK: [[@LINE]]:10 | struct/Swift | Nested | [[C_Nested_USR:.*]] | Def,RelChild | rel: 1
122
+ init ( value: Int ) { } // CHECK: [[@LINE]]:5 | constructor/Swift | init(value:) | [[C_Nested_init_USR:.*]] | Def,RelChild | rel: 1
123
+ }
124
+ }
125
+
126
+ // CHECK: [[@LINE+3]]:5 | enum/Swift | C | [[C_USR]] | Ref | rel: 0
127
+ // CHECK: [[@LINE+2]]:7 | struct/Swift | Nested | [[C_Nested_USR]] | Ref | rel: 0
128
+ // CHECK: [[@LINE+1]]:7 | constructor/Swift | init(value:) | [[C_Nested_init_USR]] | Ref,Call | rel: 0
129
+ _ = C . Nested ( value: 1 )
0 commit comments