Skip to content

Commit 58f7ac6

Browse files
authored
Merge pull request swiftlang#34652 from CodaFi/a-mirror-into-the-soul-of-the-compiler
Exempt Swift Interface Files From Whole-Module ObjC Errors
2 parents fe3415f + 79e2060 commit 58f7ac6

20 files changed

+546
-3
lines changed

lib/Sema/TypeCheckDeclObjC.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2402,6 +2402,7 @@ bool swift::diagnoseObjCUnsatisfiedOptReqConflicts(SourceFile &sf) {
24022402
break;
24032403
}
24042404
}
2405+
assert(req != bestConflict && "requirement conflicts with itself?");
24052406

24062407
// Diagnose the conflict.
24072408
auto reqDiagInfo = getObjCMethodDiagInfo(unsatisfied.second);

lib/Sema/TypeChecker.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,19 @@ void swift::performWholeModuleTypeChecking(SourceFile &SF) {
344344
auto &Ctx = SF.getASTContext();
345345
FrontendStatsTracer tracer(Ctx.Stats,
346346
"perform-whole-module-type-checking");
347-
diagnoseObjCMethodConflicts(SF);
348-
diagnoseObjCUnsatisfiedOptReqConflicts(SF);
349-
diagnoseUnintendedObjCMethodOverrides(SF);
347+
switch (SF.Kind) {
348+
case SourceFileKind::Library:
349+
case SourceFileKind::Main:
350+
diagnoseObjCMethodConflicts(SF);
351+
diagnoseObjCUnsatisfiedOptReqConflicts(SF);
352+
diagnoseUnintendedObjCMethodOverrides(SF);
353+
return;
354+
case SourceFileKind::SIL:
355+
case SourceFileKind::Interface:
356+
// SIL modules and .swiftinterface files don't benefit from whole-module
357+
// ObjC checking - skip it.
358+
return;
359+
}
350360
}
351361

352362
bool swift::isAdditiveArithmeticConformanceDerivationEnabled(SourceFile &SF) {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/CoreFeatures
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/Headers
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/Modules

0 commit comments

Comments
 (0)