Skip to content

Commit ca51966

Browse files
committed
Sema: Remove internal imports by default from Swift 6
The language steering group has decided to revert their previous decision and remove this feature from Swift 6. rdar://126318567
1 parent 7ce4055 commit ca51966

File tree

6 files changed

+53
-79
lines changed

6 files changed

+53
-79
lines changed

include/swift/Basic/Features.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ UPCOMING_FEATURE(BareSlashRegexLiterals, 354, 6)
184184
UPCOMING_FEATURE(DeprecateApplicationMain, 383, 6)
185185
UPCOMING_FEATURE(ImportObjcForwardDeclarations, 384, 6)
186186
UPCOMING_FEATURE(DisableOutwardActorInference, 401, 6)
187-
UPCOMING_FEATURE(InternalImportsByDefault, 409, 6)
188187
UPCOMING_FEATURE(IsolatedDefaultValues, 411, 6)
189188
UPCOMING_FEATURE(GlobalConcurrency, 412, 6)
190189
UPCOMING_FEATURE(InferSendableFromCaptures, 418, 6)
@@ -195,6 +194,7 @@ UPCOMING_FEATURE(MoveOnlyPartialConsumption, 429, 6)
195194

196195
// Swift 7
197196
UPCOMING_FEATURE(ExistentialAny, 335, 7)
197+
UPCOMING_FEATURE(InternalImportsByDefault, 409, 7)
198198

199199
EXPERIMENTAL_FEATURE(StaticAssert, false)
200200
EXPERIMENTAL_FEATURE(NamedOpaqueTypes, false)

test/ModuleInterface/access-level-import-swiftinterfaces.swift

Lines changed: 30 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/// Check that only public imports are printed in modules interfaces,
22
/// package imports and below are not.
3-
// REQUIRES: asserts
43

54
// RUN: %empty-directory(%t)
65
// RUN: split-file %s %t
@@ -68,24 +67,6 @@
6867
// RUN: %FileCheck --check-prefixes=CHECK-5-MUL-PRV %s < %t/MultiFiles.private.swiftinterface
6968
// RUN: %FileCheck --check-prefixes=CHECK-5-MUL-PKG %s < %t/MultiFiles.package.swiftinterface
7069

71-
/// Swift 6 mode.
72-
// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
73-
// RUN: -package-name TestPackage -module-name Client_Swift6 \
74-
// RUN: -enable-library-evolution -swift-version 6 \
75-
// RUN: -emit-module-interface-path %t/Client_Swift6.swiftinterface \
76-
// RUN: -emit-private-module-interface-path %t/Client_Swift6.private.swiftinterface \
77-
// RUN: -emit-package-module-interface-path %t/Client_Swift6.package.swiftinterface
78-
79-
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.swiftinterface) -I %t
80-
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.private.swiftinterface) -I %t \
81-
// RUN: -module-name Client_Swift6
82-
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.package.swiftinterface) -I %t \
83-
// RUN: -module-name Client_Swift6
84-
85-
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6 < %t/Client_Swift6.swiftinterface
86-
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6 < %t/Client_Swift6.private.swiftinterface
87-
// RUN: %FileCheck %s --check-prefixes=CHECK-6-PKG < %t/Client_Swift6.package.swiftinterface
88-
8970
/// Feature flag.
9071
// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
9172
// RUN: -package-name TestPackage -module-name Client_FeatureFlag \
@@ -101,15 +82,15 @@
10182
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_FeatureFlag.package.swiftinterface) -I %t \
10283
// RUN: -module-name Client_FeatureFlag
10384

104-
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6,CHECK-FLAG < %t/Client_FeatureFlag.swiftinterface
105-
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6,CHECK-FLAG < %t/Client_FeatureFlag.private.swiftinterface
106-
// RUN: %FileCheck %s --check-prefixes=CHECK-6-PKG,CHECK-FLAG < %t/Client_FeatureFlag.package.swiftinterface
85+
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-7,CHECK-FLAG < %t/Client_FeatureFlag.swiftinterface
86+
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-7,CHECK-FLAG < %t/Client_FeatureFlag.private.swiftinterface
87+
// RUN: %FileCheck %s --check-prefixes=CHECK-7-PKG,CHECK-FLAG < %t/Client_FeatureFlag.package.swiftinterface
10788

10889
/// Build a client with multiple files.
10990
// RUN: %target-swift-frontend -typecheck %t/MultiFiles?.swift -I %t \
11091
// RUN: -package-name TestPackage -module-name MultiFiles_Swift6 \
11192
// RUN: -experimental-spi-only-imports \
112-
// RUN: -enable-library-evolution -swift-version 6 \
93+
// RUN: -enable-library-evolution -enable-upcoming-feature InternalImportsByDefault \
11394
// RUN: -emit-module-interface-path %t/MultiFiles_Swift6.swiftinterface \
11495
// RUN: -emit-private-module-interface-path %t/MultiFiles_Swift6.private.swiftinterface \
11596
// RUN: -emit-package-module-interface-path %t/MultiFiles_Swift6.package.swiftinterface
@@ -120,9 +101,9 @@
120101
// RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles_Swift6.package.swiftinterface) -I %t \
121102
// RUN: -module-name MultiFiles_Swift6
122103

123-
// RUN: %FileCheck --check-prefixes=CHECK-6-MUL %s < %t/MultiFiles_Swift6.swiftinterface
124-
// RUN: %FileCheck --check-prefixes=CHECK-6-MUL-PRV %s < %t/MultiFiles_Swift6.private.swiftinterface
125-
// RUN: %FileCheck --check-prefixes=CHECK-6-MUL-PKG %s < %t/MultiFiles_Swift6.package.swiftinterface
104+
// RUN: %FileCheck --check-prefixes=CHECK-7-MUL %s < %t/MultiFiles_Swift6.swiftinterface
105+
// RUN: %FileCheck --check-prefixes=CHECK-7-MUL-PRV %s < %t/MultiFiles_Swift6.private.swiftinterface
106+
// RUN: %FileCheck --check-prefixes=CHECK-7-MUL-PKG %s < %t/MultiFiles_Swift6.package.swiftinterface
126107

127108
//--- PublicLib.swift
128109
//--- PackageLib.swift
@@ -144,9 +125,9 @@
144125
// CHECK-5-PKG: import PublicLib
145126

146127
// CHECK-FLAG: -enable-upcoming-feature InternalImportsByDefault
147-
// CHECK-6: public
148-
// CHECK-6-PKG: package import PackageLib
149-
// CHECK-6-PKG: public import PublicLib
128+
// CHECK-7: public
129+
// CHECK-7-PKG: package import PackageLib
130+
// CHECK-7-PKG: public import PublicLib
150131

151132
public import PublicLib
152133
// CHECK: PublicLib
@@ -196,11 +177,11 @@ internal import LibV
196177
// CHECK-5-MUL: @_exported import LibY
197178
// CHECK-5-MUL: import PublicLib
198179

199-
// CHECK-6-MUL: public import LibU
200-
// CHECK-6-MUL: public import LibV
201-
// CHECK-6-MUL: public import LibX
202-
// CHECK-6-MUL: @_exported public import LibY
203-
// CHECK-6-MUL: public import PublicLib
180+
// CHECK-7-MUL: public import LibU
181+
// CHECK-7-MUL: public import LibV
182+
// CHECK-7-MUL: public import LibX
183+
// CHECK-7-MUL: @_exported public import LibY
184+
// CHECK-7-MUL: public import PublicLib
204185

205186
// CHECK-5-MUL-PKG: @_spiOnly import LibS
206187
// CHECK-5-MUL-PKG: @_spiOnly import LibT
@@ -211,14 +192,14 @@ internal import LibV
211192
// CHECK-5-MUL-PKG: package import PackageLib
212193
// CHECK-5-MUL-PKG: import PublicLib
213194

214-
// CHECK-6-MUL-PKG: @_spiOnly public import LibS
215-
// CHECK-6-MUL-PKG: @_spiOnly public import LibT
216-
// CHECK-6-MUL-PKG: @_spi(Lib) public import LibU
217-
// CHECK-6-MUL-PKG: @_spi(Lib) public import LibV
218-
// CHECK-6-MUL-PKG: public import LibX
219-
// CHECK-6-MUL-PKG: @_exported public import LibY
220-
// CHECK-6-MUL-PKG: package import PackageLib
221-
// CHECK-6-MUL-PKG: public import PublicLib
195+
// CHECK-7-MUL-PKG: @_spiOnly public import LibS
196+
// CHECK-7-MUL-PKG: @_spiOnly public import LibT
197+
// CHECK-7-MUL-PKG: @_spi(Lib) public import LibU
198+
// CHECK-7-MUL-PKG: @_spi(Lib) public import LibV
199+
// CHECK-7-MUL-PKG: public import LibX
200+
// CHECK-7-MUL-PKG: @_exported public import LibY
201+
// CHECK-7-MUL-PKG: package import PackageLib
202+
// CHECK-7-MUL-PKG: public import PublicLib
222203

223204
// CHECK-5-MUL-PRV: @_spiOnly import LibS
224205
// CHECK-5-MUL-PRV: @_spiOnly import LibT
@@ -228,10 +209,10 @@ internal import LibV
228209
// CHECK-5-MUL-PRV: @_exported import LibY
229210
// CHECK-5-MUL-PRV: import PublicLib
230211

231-
// CHECK-6-MUL-PRV: @_spiOnly public import LibS
232-
// CHECK-6-MUL-PRV: @_spiOnly public import LibT
233-
// CHECK-6-MUL-PRV: @_spi(Lib) public import LibU
234-
// CHECK-6-MUL-PRV: @_spi(Lib) public import LibV
235-
// CHECK-6-MUL-PRV: public import LibX
236-
// CHECK-6-MUL-PRV: @_exported public import LibY
237-
// CHECK-6-MUL-PRV: public import PublicLib
212+
// CHECK-7-MUL-PRV: @_spiOnly public import LibS
213+
// CHECK-7-MUL-PRV: @_spiOnly public import LibT
214+
// CHECK-7-MUL-PRV: @_spi(Lib) public import LibU
215+
// CHECK-7-MUL-PRV: @_spi(Lib) public import LibV
216+
// CHECK-7-MUL-PRV: public import LibX
217+
// CHECK-7-MUL-PRV: @_exported public import LibY
218+
// CHECK-7-MUL-PRV: public import PublicLib

test/ModuleInterface/imports-swift6.swift renamed to test/ModuleInterface/imports-swift7.swift

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
/// Swift 6 variant to imports.swift. Both can be reintegrated once
2-
/// -swift-version 6 is accepted by release compilers.
1+
/// Swift 7 variant to imports.swift.
32

43
// RUN: %empty-directory(%t)
54
// RUN: split-file --leading-lines %s %t
65
// RUN: %target-swift-frontend -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import -emit-module -o %t/nonResilient.swiftmodule %t/empty.swift
76
// RUN: %target-swift-frontend -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import -emit-module -o %t/resilient.swiftmodule %t/empty.swift -enable-library-evolution
87

98
/// Check errors.
10-
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %t/clientWithError.swift -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import -I %t -verify -swift-version 6
9+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %t/clientWithError.swift -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import -I %t -verify -enable-upcoming-feature InternalImportsByDefault
1110

12-
/// Check Swift 6 imports printed in swiftinterface from 2 source files.
13-
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %t/main.swift %t/main-other.swift -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import -I %S/Inputs/imports-clang-modules/ -I %t -verify -swift-version 6
11+
/// Check Swift 7 imports printed in swiftinterface from 2 source files.
12+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %t/main.swift %t/main-other.swift -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import -I %S/Inputs/imports-clang-modules/ -I %t -verify -enable-upcoming-feature InternalImportsByDefault
1413
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -I %S/Inputs/imports-clang-modules/ -I %t
15-
// RUN: %FileCheck -implicit-check-not BAD -check-prefix CHECK-6 %s < %t.swiftinterface
14+
// RUN: %FileCheck -implicit-check-not BAD -check-prefix CHECK-7 %s < %t.swiftinterface
1615

1716
//--- empty.swift
1817

@@ -40,15 +39,15 @@ public import NotSoSecret // expected-warning {{'NotSoSecret' inconsistently imp
4039
//--- clientWithError.swift
4140
@_exported public import nonResilient // expected-error {{module 'nonResilient' was not compiled with library evolution support; using it means binary compatibility for 'clientWithError' can't be guaranteed}}
4241

43-
// CHECK-6-NOT: import
44-
// CHECK-6: {{^}}public import A{{$}}
45-
// CHECK-6-NEXT: {{^}}public import B{{$}}
46-
// CHECK-6-NEXT: {{^}}public import B.B2{{$}}
47-
// CHECK-6-NEXT: {{^}}public import B.B3{{$}}
48-
// CHECK-6-NEXT: {{^}}public import C/*.c*/{{$}}
49-
// CHECK-6-NEXT: {{^}}public import D{{$}}
50-
// CHECK-6-NEXT: {{^}}public import NotSoSecret{{$}}
51-
// CHECK-6-NEXT: {{^}}public import NotSoSecret2{{$}}
52-
// CHECK-6-NEXT: {{^}}public import Swift{{$}}
53-
// CHECK-6-NEXT: {{^}}@_exported public import resilient{{$}}
54-
// CHECK-6-NOT: import
42+
// CHECK-7-NOT: import
43+
// CHECK-7: {{^}}public import A{{$}}
44+
// CHECK-7-NEXT: {{^}}public import B{{$}}
45+
// CHECK-7-NEXT: {{^}}public import B.B2{{$}}
46+
// CHECK-7-NEXT: {{^}}public import B.B3{{$}}
47+
// CHECK-7-NEXT: {{^}}public import C/*.c*/{{$}}
48+
// CHECK-7-NEXT: {{^}}public import D{{$}}
49+
// CHECK-7-NEXT: {{^}}public import NotSoSecret{{$}}
50+
// CHECK-7-NEXT: {{^}}public import NotSoSecret2{{$}}
51+
// CHECK-7-NEXT: {{^}}public import Swift{{$}}
52+
// CHECK-7-NEXT: {{^}}@_exported public import resilient{{$}}
53+
// CHECK-7-NOT: import

test/Sema/access-level-and-non-resilient-import.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
// RUN: -enable-experimental-feature AccessLevelOnImport -verify \
2020
// RUN: -package-name pkg
2121
// RUN: %target-swift-frontend -typecheck %t/Client_Swift6.swift -I %t \
22-
// RUN: -enable-library-evolution -swift-version 6 -verify \
23-
// RUN: -package-name pkg
24-
// RUN: %target-swift-frontend -typecheck %t/Client_Swift6.swift -I %t \
2522
// RUN: -enable-library-evolution \
2623
// RUN: -enable-upcoming-feature InternalImportsByDefault \
2724
// RUN: -verify -package-name pkg
@@ -32,9 +29,6 @@
3229
// RUN: -enable-experimental-feature AccessLevelOnImport \
3330
// RUN: -package-name pkg
3431
// RUN: %target-swift-frontend -typecheck %t/Client_Swift6.swift -I %t \
35-
// RUN: -swift-version 6 \
36-
// RUN: -package-name pkg
37-
// RUN: %target-swift-frontend -typecheck %t/Client_Swift6.swift -I %t \
3832
// RUN: -enable-upcoming-feature InternalImportsByDefault \
3933
// RUN: -package-name pkg
4034

test/Sema/access-level-import-inconsistencies.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ import Lib // expected-error {{ambiguous implicit access level for import of 'Li
5959
//--- ManyFiles_ImplicitVsPackage_FileB.swift
6060
package import Lib // expected-note {{imported 'package' here}} @:1
6161

62-
// RUN: %target-swift-frontend -typecheck %t/ManyFiles_AmbiguitySwift6_File?.swift -I %t \
63-
// RUN: -verify -swift-version 6
6462
// RUN: %target-swift-frontend -typecheck %t/ManyFiles_AmbiguitySwift6_File?.swift -I %t \
6563
// RUN: -enable-upcoming-feature InternalImportsByDefault -verify
6664
//--- ManyFiles_AmbiguitySwift6_FileA.swift

test/Sema/superfluously-public-imports.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@
2525

2626
/// Check diagnostics.
2727
// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
28-
// RUN: -package-name pkg -Rmodule-api-import -swift-version 6 -verify \
28+
// RUN: -package-name pkg -Rmodule-api-import \
29+
// RUN: -enable-upcoming-feature InternalImportsByDefault -verify \
2930
// RUN: -experimental-spi-only-imports
3031
// RUN: %target-swift-frontend -typecheck %t/ClientOfClangModules.swift -I %t \
31-
// RUN: -package-name pkg -Rmodule-api-import -swift-version 6 -verify
32+
// RUN: -package-name pkg -Rmodule-api-import \
33+
// RUN: -enable-upcoming-feature InternalImportsByDefault -verify
3234
// RUN: %target-swift-frontend -typecheck %t/Client_Swift5.swift -I %t \
3335
// RUN: -swift-version 5 -verify
3436

@@ -171,7 +173,7 @@ public func useConformance(_ a: any Proto = ConformingType()) {}
171173
// expected-remark @-3 {{struct 'ConformingType' is imported via 'ConformanceBaseTypes'}}
172174
// expected-remark @-4 {{initializer 'init()' is imported via 'ConformanceBaseTypes'}}
173175

174-
@usableFromInline internal func usableFromInlineFunc(_ a: TypeUsedInSignature) {} // expected-remark {{struct 'TypeUsedInSignature' is imported via 'DepUsedInSignature'}}
176+
@usableFromInline internal func usableFromInlineFunc(_ a: TypeUsedInSignature) {}
175177

176178
@inlinable
177179
public func publicFuncUsesPrivate() {

0 commit comments

Comments
 (0)