Skip to content

Commit d66534f

Browse files
authored
Merge pull request #24444 from eeckstein/fix-remangler-subst
2 parents e36ecc2 + fe80c49 commit d66534f

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

lib/Demangling/Remangler.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2341,6 +2341,9 @@ void Remangler::mangleOpaqueReturnTypeOf(Node *node) {
23412341
Buffer << "QO";
23422342
}
23432343
void Remangler::mangleOpaqueType(Node *node) {
2344+
SubstitutionEntry entry;
2345+
if (trySubstitution(node, entry)) return;
2346+
23442347
mangle(node->getChild(0));
23452348
auto boundGenerics = node->getChild(2);
23462349
for (unsigned i = 0; i < boundGenerics->getNumChildren(); ++i) {
@@ -2355,6 +2358,8 @@ void Remangler::mangleOpaqueType(Node *node) {
23552358
}
23562359
Buffer << "Qo";
23572360
mangleIndex(node->getChild(1)->getIndex());
2361+
2362+
addSubstitution(entry);
23582363
}
23592364
void Remangler::mangleAccessorFunctionReference(Node *node) {
23602365
unreachable("can't remangle");

test/Demangle/Inputs/manglings.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ _$S3BBBBf0602365061_ ---> _$S3BBBBf0602365061_
325325
_$S3BBBBi0602365061_ ---> _$S3BBBBi0602365061_
326326
_$S3BBBBv0602365061_ ---> _$S3BBBBv0602365061_
327327
_T0lxxxmmmTk ---> _T0lxxxmmmTk
328+
$s4test3fooV4blahyAA1SV1fQryFQOy_Qo_AHF ---> test.foo.blah(<<opaque return type of test.S.f() -> some>>.0) -> <<opaque return type of test.S.f() -> some>>.0
328329
$S3nix8MystructV1xACyxGx_tcfc7MyaliasL_ayx__GD ---> Myalias #1 in nix.Mystruct<A>.init(x: A) -> nix.Mystruct<A>
329330
$S3nix7MyclassCfd7MyaliasL_ayx__GD ---> Myalias #1 in nix.Myclass<A>.deinit
330331
$S3nix8MystructVyS2icig7MyaliasL_ayx__GD ---> Myalias #1 in nix.Mystruct<A>.subscript.getter : (Swift.Int) -> Swift.Int

0 commit comments

Comments
 (0)