@@ -183,11 +183,43 @@ 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_same_type_requirement_info_set_t ;
195
+ typeAliasDetails->opaque_same_type_requirements_set ->count =
196
+ typeAliasInfo.OpaqueTypeSameTypeRequirements .size ();
197
+ typeAliasDetails->opaque_same_type_requirements_set
198
+ ->same_type_requirements =
199
+ new swift_static_mirror_type_alias_same_type_requirement_info_t
200
+ [typeAliasInfo.OpaqueTypeSameTypeRequirements .size ()];
201
+ int sameTypeReqIndex = 0 ;
202
+ for (const auto &sameTypeReq :
203
+ typeAliasInfo.OpaqueTypeSameTypeRequirements ) {
204
+ swift_static_mirror_type_alias_same_type_requirement_info_s
205
+ *sameTypeReqDetails =
206
+ new swift_static_mirror_type_alias_same_type_requirement_info_s;
207
+ sameTypeReqDetails->type_alias_name =
208
+ swift::c_string_utils::create_clone (
209
+ sameTypeReq.TypeAliasName .c_str ());
210
+ sameTypeReqDetails->substituted_type_mangled_name =
211
+ swift::c_string_utils::create_clone (
212
+ sameTypeReq.SubstitutedTypeMangledName .c_str ());
213
+ sameTypeReqDetails->substituted_type_name =
214
+ swift::c_string_utils::create_clone (
215
+ sameTypeReq.SubstitutedTypeFullyQualifiedName .c_str ());
216
+ typeAliasDetails->opaque_same_type_requirements_set
217
+ ->same_type_requirements [sameTypeReqIndex] = sameTypeReqDetails;
218
+ sameTypeReqIndex += 1 ;
219
+ }
220
+
221
+ info->type_alias_set ->type_aliases [typealiasIndex] = typeAliasDetails;
222
+ typealiasIndex += 1 ;
191
223
}
192
224
result->associated_type_infos [associatedTypeInfoIndex] = info;
193
225
associatedTypeInfoIndex += 1 ;
@@ -282,9 +314,14 @@ swift_static_mirror_type_alias_get_substituted_type_mangled_name(
282
314
return type_alias->substituted_type_mangled_name ;
283
315
}
284
316
swiftscan_string_set_t *
285
- swift_static_mirror_type_alias_get_opaque_type_requirements (
317
+ swift_static_mirror_type_alias_get_opaque_type_protocol_requirements (
318
+ swift_static_mirror_type_alias_t type_alias) {
319
+ return type_alias->opaque_protocol_requirements_set ;
320
+ }
321
+ swift_static_mirror_type_alias_same_type_requirement_info_set_t *
322
+ swift_static_mirror_type_alias_get_opaque_type_same_type_requirements (
286
323
swift_static_mirror_type_alias_t type_alias) {
287
- return type_alias->opaque_requirements_set ;
324
+ return type_alias->opaque_same_type_requirements_set ;
288
325
}
289
326
290
327
// swift_static_mirror_associated_type_info query methods
0 commit comments