Skip to content

Commit 4ce9d8a

Browse files
committed
RequirementMachine: If verification fails, print generic signature with protocol-qualified types
1 parent 30e2945 commit 4ce9d8a

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

lib/AST/GenericSignatureBuilder.cpp

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8391,9 +8391,16 @@ AbstractGenericSignatureRequest::evaluate(
83918391
return rqmResult;
83928392

83938393
if (!rqmResult.getPointer()->isEqual(gsbResult.getPointer())) {
8394+
PrintOptions opts;
8395+
opts.ProtocolQualifiedDependentMemberTypes = true;
8396+
83948397
llvm::errs() << "RequirementMachine generic signature minimization is broken:\n";
8395-
llvm::errs() << "RequirementMachine says: " << rqmResult.getPointer() << "\n";
8396-
llvm::errs() << "GenericSignatureBuilder says: " << gsbResult.getPointer() << "\n";
8398+
llvm::errs() << "RequirementMachine says: ";
8399+
rqmResult.getPointer()->print(llvm::errs(), opts);
8400+
llvm::errs() << "\n";
8401+
llvm::errs() << "GenericSignatureBuilder says: ";
8402+
gsbResult.getPointer()->print(llvm::errs(), opts);
8403+
llvm::errs() << "\n";
83978404

83988405
abort();
83998406
}
@@ -8561,9 +8568,16 @@ InferredGenericSignatureRequest::evaluate(
85618568
return rqmResult;
85628569

85638570
if (!rqmResult.getPointer()->isEqual(gsbResult.getPointer())) {
8571+
PrintOptions opts;
8572+
opts.ProtocolQualifiedDependentMemberTypes = true;
8573+
85648574
llvm::errs() << "RequirementMachine generic signature minimization is broken:\n";
8565-
llvm::errs() << "RequirementMachine says: " << rqmResult.getPointer() << "\n";
8566-
llvm::errs() << "GenericSignatureBuilder says: " << gsbResult.getPointer() << "\n";
8575+
llvm::errs() << "RequirementMachine says: ";
8576+
rqmResult.getPointer()->print(llvm::errs(), opts);
8577+
llvm::errs() << "\n";
8578+
llvm::errs() << "GenericSignatureBuilder says: ";
8579+
gsbResult.getPointer()->print(llvm::errs(), opts);
8580+
llvm::errs() << "\n";
85678581

85688582
abort();
85698583
}
@@ -8663,16 +8677,23 @@ RequirementSignatureRequest::evaluate(Evaluator &evaluator,
86638677
auto gsbResult = buildViaGSB();
86648678

86658679
if (!compare(rqmResult, gsbResult)) {
8680+
PrintOptions opts;
8681+
opts.ProtocolQualifiedDependentMemberTypes = true;
8682+
86668683
llvm::errs() << "RequirementMachine protocol signature minimization is broken:\n";
86678684
llvm::errs() << "Protocol: " << proto->getName() << "\n";
86688685

8686+
llvm::errs() << "RequirementMachine says: ";
86698687
auto rqmSig = GenericSignature::get(
86708688
proto->getGenericSignature().getGenericParams(), rqmResult);
8671-
llvm::errs() << "RequirementMachine says: " << rqmSig << "\n";
8689+
rqmSig.print(llvm::errs(), opts);
8690+
llvm::errs() << "\n";
86728691

8692+
llvm::errs() << "GenericSignatureBuilder says: ";
86738693
auto gsbSig = GenericSignature::get(
86748694
proto->getGenericSignature().getGenericParams(), gsbResult);
8675-
llvm::errs() << "GenericSignatureBuilder says: " << gsbSig << "\n";
8695+
gsbSig.print(llvm::errs(), opts);
8696+
llvm::errs() << "\n";
86768697

86778698
abort();
86788699
}

0 commit comments

Comments
 (0)