Skip to content

Commit cbe5c38

Browse files
committed
[Sema] Lift flag requirement for access level on imports
1 parent 322ada6 commit cbe5c38

File tree

3 files changed

+7
-20
lines changed

3 files changed

+7
-20
lines changed

include/swift/AST/DiagnosticsSema.def

-3
Original file line numberDiff line numberDiff line change
@@ -2356,9 +2356,6 @@ ERROR(spi_only_imports_not_enabled, none,
23562356
())
23572357

23582358
// Access level on imports
2359-
ERROR(access_level_on_import_not_enabled, none,
2360-
"Access level on imports require '-enable-experimental-feature AccessLevelOnImport'",
2361-
())
23622359
ERROR(access_level_on_import_unsupported, none,
23632360
"The access level %0 is unsupported on imports: "
23642361
"only 'public', 'package', 'internal', 'fileprivate' and 'private' "

lib/Sema/TypeCheckAttr.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -998,13 +998,6 @@ bool AttributeChecker::visitAbstractAccessControlAttr(
998998

999999
SourceFile *File = D->getDeclContext()->getParentSourceFile();
10001000
if (auto importDecl = dyn_cast<ImportDecl>(D)) {
1001-
if (!D->getASTContext().LangOpts.hasFeature(Feature::AccessLevelOnImport) &&
1002-
!D->getASTContext().LangOpts.hasFeature(Feature::InternalImports) &&
1003-
File && File->Kind != SourceFileKind::Interface) {
1004-
diagnoseAndRemoveAttr(attr, diag::access_level_on_import_not_enabled);
1005-
return true;
1006-
}
1007-
10081001
if (attr->getAccess() == AccessLevel::Open) {
10091002
diagnoseAndRemoveAttr(attr, diag::access_level_on_import_unsupported,
10101003
attr);

test/Sema/access-level-import-flag-check.swift

+7-10
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,11 @@
1414
// RUN: -enable-library-evolution
1515

1616
/// Check flag requirement, without and with the flag.
17-
// RUN: %target-swift-frontend -typecheck %t/ClientWithoutTheFlag.swift -I %t -verify \
18-
// RUN: -package-name package
1917
// RUN: %target-swift-frontend -typecheck %t/ClientWithoutTheFlag.swift -I %t \
20-
// RUN: -enable-experimental-feature AccessLevelOnImport \
21-
// RUN: -package-name package
18+
// RUN: -package-name package -verify
2219
// RUN: %target-swift-frontend -typecheck %t/ClientWithoutTheFlag.swift -I %t \
2320
// RUN: -enable-upcoming-feature InternalImportsByDefault \
24-
// RUN: -package-name package
21+
// RUN: -package-name package -verify
2522
// REQUIRES: asserts
2623

2724
/// swiftinterfaces don't need the flag.
@@ -34,13 +31,13 @@
3431
//--- PrivateLib.swift
3532

3633
//--- ClientWithoutTheFlag.swift
37-
public import PublicLib // expected-error@:1 {{Access level on imports require '-enable-experimental-feature AccessLevelOnImport'}}
34+
public import PublicLib
3835
// expected-warning @-1 {{public import of 'PublicLib' was not used in public declarations or inlinable code}}
39-
package import PackageLib // expected-error@:1 {{Access level on imports require '-enable-experimental-feature AccessLevelOnImport'}}
36+
package import PackageLib
4037
// expected-warning @-1 {{package import of 'PackageLib' was not used in package declarations}}
41-
internal import InternalLib // expected-error@:1 {{Access level on imports require '-enable-experimental-feature AccessLevelOnImport'}}
42-
fileprivate import FileprivateLib // expected-error@:1 {{Access level on imports require '-enable-experimental-feature AccessLevelOnImport'}}
43-
private import PrivateLib // expected-error@:1 {{Access level on imports require '-enable-experimental-feature AccessLevelOnImport'}}
38+
internal import InternalLib
39+
fileprivate import FileprivateLib
40+
private import PrivateLib
4441

4542
//--- Client.swiftinterface
4643
// swift-interface-format-version: 1.0

0 commit comments

Comments
 (0)