Skip to content

Commit e6d8b02

Browse files
committed
Make module selectors non-experimental
Approved by SE-0491.
1 parent e3495f5 commit e6d8b02

File tree

8 files changed

+12
-22
lines changed

8 files changed

+12
-22
lines changed

include/swift/Basic/Features.def

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ LANGUAGE_FEATURE(InlineArrayTypeSugar, 483, "Type sugar for InlineArray")
276276
LANGUAGE_FEATURE(LifetimeDependenceMutableAccessors, 0, "Support mutable accessors returning ~Escapable results")
277277
LANGUAGE_FEATURE(InoutLifetimeDependence, 0, "Support @_lifetime(&)")
278278
SUPPRESSIBLE_LANGUAGE_FEATURE(NonexhaustiveAttribute, 487, "Nonexhaustive Enums")
279+
LANGUAGE_FEATURE(ModuleSelector, 491, "Module selectors (`Module::name` syntax)")
279280

280281
// Swift 6
281282
UPCOMING_FEATURE(ConciseMagicFile, 274, 6)
@@ -533,9 +534,6 @@ EXPERIMENTAL_FEATURE(AllowRuntimeSymbolDeclarations, true)
533534
/// Allow use of `@c`
534535
EXPERIMENTAL_FEATURE(CDecl, false)
535536

536-
/// Allow use of `Module::name` syntax
537-
EXPERIMENTAL_FEATURE(ModuleSelector, false)
538-
539537
/// Allow use of `using` declaration that control default isolation
540538
/// in a file scope.
541539
EXPERIMENTAL_FEATURE(DefaultIsolationPerFile, false)

lib/Parse/Lexer.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2768,7 +2768,7 @@ void Lexer::lexImpl() {
27682768
case '\\': return formToken(tok::backslash, TokStart);
27692769

27702770
case ':':
2771-
if (CurPtr[0] == ':' && LangOpts.hasFeature(Feature::ModuleSelector)) {
2771+
if (CurPtr[0] == ':') {
27722772
CurPtr++;
27732773
return formToken(tok::colon_colon, TokStart);
27742774
}
@@ -2882,7 +2882,6 @@ Token Lexer::getTokenAtLocation(const SourceManager &SM, SourceLoc Loc,
28822882
// Use fake language options; language options only affect validity
28832883
// and the exact token produced.
28842884
LangOptions FakeLangOpts;
2885-
FakeLangOpts.enableFeature(Feature::ModuleSelector);
28862885

28872886
// Here we return comments as tokens because either the caller skipped
28882887
// comments and normally we won't be at the beginning of a comment token

lib/Parse/ParseDecl.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4259,8 +4259,7 @@ ParserStatus Parser::parseDeclAttribute(DeclAttributes &Attributes,
42594259
.warnUntilSwiftVersion(6);
42604260
}
42614261

4262-
bool hasModuleSelector = Context.LangOpts.hasFeature(Feature::ModuleSelector)
4263-
&& peekToken().is(tok::colon_colon);
4262+
bool hasModuleSelector = peekToken().is(tok::colon_colon);
42644263

42654264
// If this not an identifier, the attribute is malformed.
42664265
if (Tok.isNot(tok::identifier) &&

lib/Parse/ParseExpr.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2284,9 +2284,6 @@ unsigned Parser::isAtModuleSelector() {
22842284
}
22852285

22862286
std::optional<Located<Identifier>> Parser::parseModuleSelector() {
2287-
if (!Context.LangOpts.hasFeature(Feature::ModuleSelector))
2288-
return std::nullopt;
2289-
22902287
if (!isAtModuleSelector())
22912288
return std::nullopt;
22922289

test/NameLookup/module_selector.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// RUN: %target-typecheck-verify-swift -verify-ignore-unrelated -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-builtin-module -enable-experimental-feature ModuleSelector
2-
// RUN: %target-typecheck-verify-swift -verify-ignore-unrelated -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-builtin-module -enable-experimental-feature ModuleSelector -enable-experimental-feature ParserASTGen
1+
// RUN: %target-typecheck-verify-swift -verify-ignore-unrelated -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-builtin-module
2+
// RUN: %target-typecheck-verify-swift -verify-ignore-unrelated -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-builtin-module -enable-experimental-feature ParserASTGen
33

4-
// REQUIRES: swift_feature_ModuleSelector, swift_feature_ParserASTGen
4+
// REQUIRES: swift_feature_ParserASTGen
55

66
// FIXME: This test doesn't really cover:
77
//

test/NameLookup/module_selector_cross_import.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-experimental-feature ModuleSelector -enable-cross-import-overlays
2-
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-experimental-feature ModuleSelector -enable-experimental-feature ParserASTGen -enable-cross-import-overlays
1+
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-cross-import-overlays
2+
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-experimental-feature ParserASTGen -enable-cross-import-overlays
33

4-
// REQUIRES: swift_feature_ModuleSelector, swift_feature_ParserASTGen
4+
// REQUIRES: swift_feature_ParserASTGen
55

66
import ModuleSelectorTestingKit
77
import ctypes

test/Parse/module_selector.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-experimental-feature ModuleSelector -parse -verify-additional-prefix legacy-
2-
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -enable-experimental-feature ModuleSelector -parse -verify-additional-prefix new- -enable-experimental-feature ParserASTGen
1+
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -parse -verify-additional-prefix legacy-
2+
// RUN: %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs -parse -verify-additional-prefix new- -enable-experimental-feature ParserASTGen
33

44
// Make sure the lack of the experimental flag disables the feature:
55
// RUN: not %target-typecheck-verify-swift -sdk %clang-importer-sdk -module-name main -I %S/Inputs 2>/dev/null
66

7-
// REQUIRES: swift_feature_ModuleSelector, swift_feature_ParserASTGen
7+
// REQUIRES: swift_feature_ParserASTGen
88

99
// ModuleSelectorImports
1010
import struct ModuleSelectorTestingKit::A

test/expr/primary/unqualified_name.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
// RUN: %target-typecheck-verify-swift -swift-version 4
22

3-
// RUN: %target-typecheck-verify-swift -swift-version 4 -enable-experimental-feature ModuleSelector
4-
// REQUIRES: swift_feature_ModuleSelector
5-
63
func f0(_ x: Int, y: Int, z: Int) { }
74
func f1(_ x: Int, while: Int) { }
85
func f2(_ x: Int, `let` _: Int) { }

0 commit comments

Comments
 (0)