Merge pull request #85990 from xymus/serial-conf-diag

Serialization: Minor improvements to the error on conformance mismatch
This commit is contained in:
Alexis Laferrière
2025-12-12 15:05:53 -08:00
committed by GitHub
3 changed files with 7 additions and 7 deletions

View File

@@ -1092,8 +1092,8 @@ NOTE(modularization_issue_conformance_xref_note,none,
"Breaks conformances of '%0' to %1", "Breaks conformances of '%0' to %1",
(StringRef, DeclName)) (StringRef, DeclName))
ERROR(modularization_issue_conformance_error,none, ERROR(modularization_issue_conformance_error,none,
"Conformances of '%0' " "Listed conformances of '%0' "
"do not match requirement signature of %1; " "do not match current requirement signature of %1; "
"%2 conformances for %3 requirements", "%2 conformances for %3 requirements",
(StringRef, DeclName, unsigned int, unsigned int)) (StringRef, DeclName, unsigned int, unsigned int))

View File

@@ -9119,13 +9119,13 @@ void ModuleFile::finishNormalConformance(NormalProtocolConformance *conformance,
// Print context to stderr. // Print context to stderr.
PrintOptions Opts; PrintOptions Opts;
llvm::errs() << "Requirements:\n"; llvm::errs() << "Requirements seen by this invocation:\n";
for (auto req: requirements) { for (auto req: requirements) {
req.print(llvm::errs(), Opts); req.print(llvm::errs(), Opts);
llvm::errs() << "\n"; llvm::errs() << "\n";
} }
llvm::errs() << "Conformances:\n"; llvm::errs() << "\nConformances written in the swiftmodule:\n";
for (auto req: reqConformances) { for (auto req: reqConformances) {
req.print(llvm::errs()); req.print(llvm::errs());
llvm::errs() << "\n"; llvm::errs() << "\n";

View File

@@ -62,10 +62,10 @@ extension Counter: SimpleProto {}
public protocol ProtoUser { public protocol ProtoUser {
associatedtype Element associatedtype Element
#if DROP_REQUIREMENT #if DROP_REQUIREMENT
// CHECK-REMARK-REQUIREMENT: MiddleLib.swiftmodule:1:1: error: Conformances of 'OneToAThousand' do not match requirement signature of 'ProtoUser'; 5 conformances for 6 requirements // CHECK-REMARK-REQUIREMENT: MiddleLib.swiftmodule:1:1: error: Listed conformances of 'OneToAThousand' do not match current requirement signature of 'ProtoUser'; 5 conformances for 6 requirements
// CHECK-REMARK-REQUIREMENT: Requirements: // CHECK-REMARK-REQUIREMENT: Requirements seen by this invocation:
// Skipping implicits. // Skipping implicits.
// CHECK-REMARK-REQUIREMENT: Conformances: // CHECK-REMARK-REQUIREMENT: Conformances written in the swiftmodule:
// Skipping implicits. // Skipping implicits.
// CHECK-REMARK-REQUIREMENT: (specialized_conformance type="OneToAThousand.Impl" protocol="SimpleProto" // CHECK-REMARK-REQUIREMENT: (specialized_conformance type="OneToAThousand.Impl" protocol="SimpleProto"
// CHECK-REMARK-REQUIREMENT: (normal_conformance type="Counter<T>" protocol="SimpleProto"{{.*}} lazy)) // CHECK-REMARK-REQUIREMENT: (normal_conformance type="Counter<T>" protocol="SimpleProto"{{.*}} lazy))