@@ -183,11 +183,41 @@ convertAssociatedTypeQueryResult(
183183 typeAliasDetails->substituted_type_mangled_name =
184184 swift::c_string_utils::create_clone (
185185 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 =
189189 swift::c_string_utils::create_set (
190190 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 ;
191221 }
192222 result->associated_type_infos [associatedTypeInfoIndex] = info;
193223 associatedTypeInfoIndex += 1 ;
@@ -282,9 +312,14 @@ swift_static_mirror_type_alias_get_substituted_type_mangled_name(
282312 return type_alias->substituted_type_mangled_name ;
283313}
284314swiftscan_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 (
286321 swift_static_mirror_type_alias_t type_alias) {
287- return type_alias->opaque_requirements_set ;
322+ return type_alias->opaque_same_type_requirements_set ;
288323}
289324
290325// swift_static_mirror_associated_type_info query methods
0 commit comments