@@ -92,3 +92,60 @@ import PublicClang_Private
9292import FullyPrivateClang
9393import LocalClang
9494@_exported import MainLib
95+
96+ // RUN: %target-swift-frontend -typecheck -sdk %t/sdk %t/InternalImports.swift \
97+ // RUN: -enable-experimental-feature AccessLevelOnImport \
98+ // RUN: -module-name MainLib -module-cache-path %t \
99+ // RUN: -F %t/sdk/System/Library/PrivateFrameworks/ \
100+ // RUN: -library-level api -verify
101+ //--- InternalImports.swift
102+ internal import PublicSwift
103+ internal import PrivateSwift
104+
105+ internal import PublicClang
106+ internal import PublicClang_Private
107+ internal import FullyPrivateClang
108+ internal import LocalClang
109+
110+ // RUN: %target-swift-frontend -typecheck -sdk %t/sdk %t/FileprivateImports.swift \
111+ // RUN: -enable-experimental-feature AccessLevelOnImport \
112+ // RUN: -module-name MainLib -module-cache-path %t \
113+ // RUN: -F %t/sdk/System/Library/PrivateFrameworks/ \
114+ // RUN: -library-level api -verify
115+ //--- FileprivateImports.swift
116+ fileprivate import PublicSwift
117+ fileprivate import PrivateSwift
118+
119+ fileprivate import PublicClang
120+ fileprivate import PublicClang_Private
121+ fileprivate import FullyPrivateClang
122+ fileprivate import LocalClang
123+
124+ // RUN: %target-swift-frontend -typecheck -sdk %t/sdk %t/PrivateImports.swift \
125+ // RUN: -enable-experimental-feature AccessLevelOnImport \
126+ // RUN: -module-name MainLib -module-cache-path %t \
127+ // RUN: -F %t/sdk/System/Library/PrivateFrameworks/ \
128+ // RUN: -library-level api -verify
129+ //--- PrivateImports.swift
130+ private import PublicSwift
131+ private import PrivateSwift
132+
133+ private import PublicClang
134+ private import PublicClang_Private
135+ private import FullyPrivateClang
136+ private import LocalClang
137+
138+ // RUN: %target-swift-frontend -typecheck -sdk %t/sdk %t/ExplicitlyPublicImports.swift \
139+ // RUN: -enable-experimental-feature AccessLevelOnImport \
140+ // RUN: -module-name MainLib -module-cache-path %t \
141+ // RUN: -F %t/sdk/System/Library/PrivateFrameworks/ \
142+ // RUN: -library-level api -verify
143+ //--- ExplicitlyPublicImports.swift
144+ public import PublicSwift
145+ public import PrivateSwift // expected-error{{private module 'PrivateSwift' is imported publicly from the public module 'MainLib'}}
146+
147+ public import PublicClang
148+ public import PublicClang_Private // expected-error{{private module 'PublicClang_Private' is imported publicly from the public module 'MainLib'}}
149+ public import FullyPrivateClang // expected-error{{private module 'FullyPrivateClang' is imported publicly from the public module 'MainLib'}}
150+ public import LocalClang // expected-error{{private module 'LocalClang' is imported publicly from the public module 'MainLib'}}
151+ @_exported public import MainLib // expected-warning{{private module 'MainLib' is imported publicly from the public module 'MainLib'}}
0 commit comments