@@ -183,11 +183,41 @@ convertAssociatedTypeQueryResult(
183
183
typeAliasDetails->substituted_type_mangled_name =
184
184
swift::c_string_utils::create_clone (
185
185
typeAliasInfo.SubstitutionInfo .SubstitutedTypeMangledName .c_str ());
186
- info-> type_alias_set -> type_aliases [typealiasIndex] = typeAliasDetails;
187
- typealiasIndex += 1 ;
188
- typeAliasDetails->opaque_requirements_set =
186
+
187
+ // Opaque type's protocol conformance requirements
188
+ typeAliasDetails->opaque_protocol_requirements_set =
189
189
swift::c_string_utils::create_set (
190
190
typeAliasInfo.OpaqueTypeProtocolConformanceRequirements );
191
+
192
+ // Opaque type's same-type requirements
193
+ typeAliasDetails->opaque_same_type_requirements_set =
194
+ new swift_static_mirror_type_alias_set_t ;
195
+ typeAliasDetails->opaque_same_type_requirements_set ->count =
196
+ typeAliasInfo.OpaqueTypeSameTypeRequirements .size ();
197
+ typeAliasDetails->opaque_same_type_requirements_set ->type_aliases =
198
+ new swift_static_mirror_type_alias_t
199
+ [typeAliasInfo.OpaqueTypeSameTypeRequirements .size ()];
200
+ int sameTypeReqIndex = 0 ;
201
+ for (const auto &sameTypeReq :
202
+ typeAliasInfo.OpaqueTypeSameTypeRequirements ) {
203
+ swift_static_mirror_type_alias_s *sameTypeReqDetails =
204
+ new swift_static_mirror_type_alias_s;
205
+ sameTypeReqDetails->type_alias_name =
206
+ swift::c_string_utils::create_clone (
207
+ sameTypeReq.TypeAliasName .c_str ());
208
+ sameTypeReqDetails->substituted_type_mangled_name =
209
+ swift::c_string_utils::create_clone (
210
+ sameTypeReq.SubstitutedTypeMangledName .c_str ());
211
+ sameTypeReqDetails->substituted_type_name =
212
+ swift::c_string_utils::create_clone (
213
+ sameTypeReq.SubstitutedTypeFullyQualifiedName .c_str ());
214
+ typeAliasDetails->opaque_same_type_requirements_set
215
+ ->type_aliases [sameTypeReqIndex] = sameTypeReqDetails;
216
+ sameTypeReqIndex += 1 ;
217
+ }
218
+
219
+ info->type_alias_set ->type_aliases [typealiasIndex] = typeAliasDetails;
220
+ typealiasIndex += 1 ;
191
221
}
192
222
result->associated_type_infos [associatedTypeInfoIndex] = info;
193
223
associatedTypeInfoIndex += 1 ;
@@ -282,9 +312,14 @@ swift_static_mirror_type_alias_get_substituted_type_mangled_name(
282
312
return type_alias->substituted_type_mangled_name ;
283
313
}
284
314
swiftscan_string_set_t *
285
- swift_static_mirror_type_alias_get_opaque_type_requirements (
315
+ swift_static_mirror_type_alias_get_opaque_type_protocol_requirements (
316
+ swift_static_mirror_type_alias_t type_alias) {
317
+ return type_alias->opaque_protocol_requirements_set ;
318
+ }
319
+ swift_static_mirror_type_alias_set_t *
320
+ swift_static_mirror_type_alias_get_opaque_type_same_type_requirements (
286
321
swift_static_mirror_type_alias_t type_alias) {
287
- return type_alias->opaque_requirements_set ;
322
+ return type_alias->opaque_same_type_requirements_set ;
288
323
}
289
324
290
325
// swift_static_mirror_associated_type_info query methods
0 commit comments