Skip to content

Commit cf67a51

Browse files
committed
ASTPrinter: Apply inverse transform when printing SIL function type generic signatures
1 parent 071eaee commit cf67a51

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

lib/AST/ASTPrinter.cpp

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7327,11 +7327,15 @@ class TypePrinter : public TypeVisitor<TypePrinter> {
73277327
printFunctionExtInfo(T);
73287328
printCalleeConvention(T->getCalleeConvention());
73297329

7330-
if (auto sig = T->getInvocationGenericSignature()) {
7330+
if (GenericSignature sig = T->getInvocationGenericSignature()) {
7331+
SmallVector<InverseRequirement, 2> inverses;
7332+
reconstituteInverses(sig, sig.getGenericParams(), inverses);
7333+
73317334
printGenericSignature(sig,
7332-
/*inverses=*/{},
7335+
inverses,
73337336
PrintAST::PrintParams |
7334-
PrintAST::PrintRequirements);
7337+
PrintAST::PrintRequirements |
7338+
PrintAST::CollapseDefaultReqs);
73357339
Printer << " ";
73367340
}
73377341

@@ -7351,11 +7355,16 @@ class TypePrinter : public TypeVisitor<TypePrinter> {
73517355
subBuffer.emplace(Printer, subOptions);
73527356
sub = &*subBuffer;
73537357

7358+
GenericSignature sig = substitutions.getGenericSignature();
7359+
7360+
SmallVector<InverseRequirement, 2> inverses;
7361+
reconstituteInverses(sig, sig.getGenericParams(), inverses);
7362+
73547363
sub->Printer << "@substituted ";
7355-
sub->printGenericSignature(substitutions.getGenericSignature(),
7356-
/*inverses=*/{},
7364+
sub->printGenericSignature(sig, inverses,
73577365
PrintAST::PrintParams |
7358-
PrintAST::PrintRequirements);
7366+
PrintAST::PrintRequirements |
7367+
PrintAST::CollapseDefaultReqs);
73597368
sub->Printer << " ";
73607369
}
73617370

0 commit comments

Comments
 (0)