@@ -118,3 +118,60 @@ protocol Comprehensive {
118118// CHECK-SAME: %swift.protocol_requirement { i32 4, i32 0 },
119119// CHECK-SAME: %swift.protocol_requirement { i32 6, i32 0 }
120120
121+ struct ParentType {
122+
123+ // NESTED: [[NESTED_NAME:@.*]] = private constant [7 x i8] c"Nested\00"
124+ // NESTED: [[NESTED_RETURNVALUE_NAME:@.*]] = private constant [12 x i8] c"ReturnValue\00"
125+
126+ // NESTED: @"$s17protocol_metadata10ParentTypeV6NestedMp" = hidden constant
127+ // NESTED-SAME: i32 65603,
128+ // NESTED-SAME: @"$s17protocol_metadata10ParentTypeVMn"
129+ // NESTED-SAME: @"$s17protocol_metadata10ParentTypeV6NestedMp", i32 0, i32 1)
130+ // NESTED-SAME: [7 x i8]* [[NESTED_NAME]]
131+ // NESTED-SAME: @"$s17protocol_metadata10ParentTypeV6NestedMp", i32 0, i32 2)
132+ // NESTED-SAME: i32 0,
133+ // NESTED-SAME: i32 2,
134+ // NESTED-SAME: [12 x i8]* [[NESTED_RETURNVALUE_NAME]]
135+ // NESTED-SAME: @"$s17protocol_metadata10ParentTypeV6NestedMp", i32 0, i32 5)
136+ // NESTED-SAME: %swift.protocol_requirement { i32 7, i32 0 },
137+ // NESTED-SAME: %swift.protocol_requirement { i32 17, i32 0 }
138+ protocol Nested {
139+ associatedtype ReturnValue
140+ func doSomething( ) -> ReturnValue
141+ }
142+ }
143+
144+ extension ParentType {
145+
146+ // NESTED: [[NESTEDVIAEXT_NAME:@.*]] = private constant [19 x i8] c"NestedViaExtension\00"
147+
148+ // NESTED: @"$s17protocol_metadata10ParentTypeV18NestedViaExtensionMp" = hidden constant
149+ // NESTED-SAME: i32 65603,
150+ // NESTED-SAME: @"$s17protocol_metadata10ParentTypeVMn"
151+ // NESTED-SAME: @"$s17protocol_metadata10ParentTypeV18NestedViaExtensionMp", i32 0, i32 1)
152+ // NESTED-SAME: [19 x i8]* [[NESTEDVIAEXT_NAME]]
153+ // NESTED-SAME: @"$s17protocol_metadata10ParentTypeV18NestedViaExtensionMp", i32 0, i32 2)
154+ // NESTED-SAME: i32 0,
155+ // NESTED-SAME: i32 1,
156+ // NESTED-SAME: i32 0,
157+ // NESTED-SAME: %swift.protocol_requirement { i32 17, i32 0 }
158+ protocol NestedViaExtension {
159+ func foo( )
160+ }
161+ }
162+
163+ func parentFunc( ) {
164+ // NESTED: @"$s17protocol_metadata10parentFuncyyF6NestedL_Mp" = internal constant
165+ // NESTED-SAME: i32 65603,
166+ // NESTED-SAME: @"$s17protocol_metadata10parentFuncyyF6NestedL_PMXX"
167+ // NESTED-SAME: @"$s17protocol_metadata10parentFuncyyF6NestedL_Mp", i32 0, i32 1)
168+ // NESTED-SAME: [7 x i8]* [[NESTED_NAME]]
169+ // NESTED-SAME: @"$s17protocol_metadata10parentFuncyyF6NestedL_Mp", i32 0, i32 2)
170+ // NESTED-SAME: i32 0,
171+ // NESTED-SAME: i32 1,
172+ // NESTED-SAME: i32 0,
173+ // NESTED-SAME: %swift.protocol_requirement { i32 17, i32 0 }
174+ protocol Nested {
175+ func foo( )
176+ }
177+ }
0 commit comments