Skip to content

Commit e2fa682

Browse files
committed
[Sema] Make public imports of private modules an error
rdar://83731983
1 parent 08d902f commit e2fa682

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2907,7 +2907,7 @@ WARNING(warn_implementation_only_conflict,none,
29072907
(Identifier))
29082908
NOTE(implementation_only_conflict_here,none,
29092909
"imported as implementation-only here", ())
2910-
WARNING(warn_public_import_of_private_module,none,
2910+
ERROR(error_public_import_of_private_module,none,
29112911
"private module %0 is imported publicly from the public module %1",
29122912
(Identifier, Identifier))
29132913

lib/Sema/TypeCheckDeclPrimary.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1709,7 +1709,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
17091709

17101710
auto &diags = ID->getASTContext().Diags;
17111711
InFlightDiagnostic inFlight =
1712-
diags.diagnose(ID, diag::warn_public_import_of_private_module,
1712+
diags.diagnose(ID, diag::error_public_import_of_private_module,
17131713
target->getName(), importer->getName());
17141714
if (ID->getAttrs().isEmpty()) {
17151715
inFlight.fixItInsert(ID->getStartLoc(),

test/Sema/implementation-only-import-suggestion.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434
// RUN: -library-level other -D PUBLIC_IMPORTS
3535
#if PUBLIC_IMPORTS
3636
import PublicSwift
37-
import PrivateSwift // expected-warning{{private module 'PrivateSwift' is imported publicly from the public module 'main'}}
37+
import PrivateSwift // expected-error{{private module 'PrivateSwift' is imported publicly from the public module 'main'}}
3838

3939
import PublicClang
40-
import PublicClang_Private // expected-warning{{private module 'PublicClang_Private' is imported publicly from the public module 'main'}}
41-
import FullyPrivateClang // expected-warning{{private module 'FullyPrivateClang' is imported publicly from the public module 'main'}}
40+
import PublicClang_Private // expected-error{{private module 'PublicClang_Private' is imported publicly from the public module 'main'}}
41+
import FullyPrivateClang // expected-error{{private module 'FullyPrivateClang' is imported publicly from the public module 'main'}}
4242
import main // expected-warning{{'implementation-only-import-suggestion.swift' is part of module 'main'; ignoring import}}
4343

4444
/// Expect no warnings with implementation-only imports.

0 commit comments

Comments
 (0)