ABI checker: prefer sugared version of generic signature while emitting diagnostics.

This commit is contained in:
Xi Ge
2019-08-25 11:40:26 -07:00
parent b66a3706e6
commit 03bd23ebe0
9 changed files with 73 additions and 22 deletions

View File

@@ -834,8 +834,15 @@ void swift::ide::api::SDKNodeDecl::diagnose(SDKNode *Right) {
}
// Diagnose generic signature change
if (getGenericSignature() != RD->getGenericSignature()) {
emitDiag(diag::generic_sig_change,
getGenericSignature(), RD->getGenericSignature());
// Prefer sugared signature in diagnostics to be more user-friendly.
if (versionAtLeast(2) && RD->versionAtLeast(2) &&
getSugaredGenericSignature() != RD->getSugaredGenericSignature()) {
emitDiag(diag::generic_sig_change,
getSugaredGenericSignature(), RD->getSugaredGenericSignature());
} else {
emitDiag(diag::generic_sig_change,
getGenericSignature(), RD->getGenericSignature());
}
}
if (isOptional() != RD->isOptional()) {
if (Ctx.checkingABI()) {