Skip to content

Commit 10a2cde

Browse files
committed
Tests: Add package access level test cases to MemberImportVisibility tests.
1 parent bbc02a5 commit 10a2cde

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

test/NameLookup/Inputs/MemberImportVisibility/members_B.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ import members_A
33

44
extension X {
55
public func XinB() { }
6+
package func XinB_package() { }
67

78
public var propXinB: Bool { return true }
9+
package var propXinB_package: Bool { return true }
810

911
public static func >>>(a: Self, b: Self) -> Self { b }
1012

1113
public struct NestedInB {}
14+
package struct NestedInB_package {}
1215
}
1316

1417
extension Y {
@@ -20,3 +23,7 @@ extension Y {
2023
public enum EnumInB {
2124
case caseInB
2225
}
26+
27+
package enum EnumInB_package {
28+
case caseInB
29+
}

test/NameLookup/members_transitive.swift

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// RUN: %empty-directory(%t)
22
// RUN: %target-swift-frontend -emit-module -o %t %S/Inputs/MemberImportVisibility/members_A.swift
3-
// RUN: %target-swift-frontend -emit-module -I %t -o %t %S/Inputs/MemberImportVisibility/members_B.swift
3+
// RUN: %target-swift-frontend -emit-module -I %t -o %t -package-name TestPackage %S/Inputs/MemberImportVisibility/members_B.swift
44
// RUN: %target-swift-frontend -emit-module -I %t -o %t %S/Inputs/MemberImportVisibility/members_C.swift
5-
// RUN: %target-swift-frontend -typecheck %s -I %t -verify -swift-version 5
6-
// RUN: %target-swift-frontend -typecheck %s -I %t -verify -swift-version 6
7-
// RUN: %target-swift-frontend -typecheck %s -I %t -verify -swift-version 5 -enable-experimental-feature MemberImportVisibility -verify-additional-prefix member-visibility-
5+
// RUN: %target-swift-frontend -typecheck %s -I %t -verify -swift-version 5 -package-name TestPackage
6+
// RUN: %target-swift-frontend -typecheck %s -I %t -verify -swift-version 6 -package-name TestPackage
7+
// RUN: %target-swift-frontend -typecheck %s -I %t -verify -swift-version 5 -package-name TestPackage -enable-experimental-feature MemberImportVisibility -verify-additional-prefix member-visibility-
88

99
import members_C
1010
// expected-member-visibility-note 6{{add import of module 'members_B'}}{{1-1=import members_B\n}}
@@ -15,6 +15,7 @@ func testExtensionMembers(x: X, y: Y<Z>) {
1515
y.YinA()
1616

1717
x.XinB() // expected-member-visibility-error{{instance method 'XinB()' is not available due to missing import of defining module 'members_B'}}
18+
x.XinB_package() // expected-member-visibility-error{{'XinB_package' is inaccessible due to 'package' protection level}}
1819
y.YinB() // expected-member-visibility-error{{instance method 'YinB()' is not available due to missing import of defining module 'members_B'}}
1920

2021
x.XinC()
@@ -33,31 +34,36 @@ func testOperatorMembers(x: X, y: Y<Z>) {
3334
}
3435

3536
extension X {
36-
var testProperties: (Bool, Bool, Bool) {
37+
var testProperties: (Bool, Bool, Bool, Bool) {
3738
return (
3839
propXinA,
3940
propXinB, // expected-member-visibility-error{{property 'propXinB' is not available due to missing import of defining module 'members_B'}}
41+
propXinB_package, // expected-member-visibility-error{{'propXinB_package' is inaccessible due to 'package' protection level}}
4042
propXinC
4143
)
4244
}
4345

4446
func testNestedTypes() {
4547
_ = NestedInA.self
4648
_ = NestedInB.self // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
49+
_ = NestedInB_package.self // expected-member-visibility-error{{'NestedInB_package' is inaccessible due to 'package' protection level}}
4750
_ = NestedInC.self
4851
}
4952

5053
var nestedInA: NestedInA { fatalError() }
5154
var nestedInB: NestedInB { fatalError() } // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
55+
var nestedInB_package: NestedInB_package { fatalError() } // expected-member-visibility-error{{'NestedInB_package' is inaccessible due to 'package' protection level}}
5256
var nestedInC: NestedInC { fatalError() }
5357
}
5458

5559
extension X.NestedInA {}
5660
extension X.NestedInB {} // expected-member-visibility-error{{struct 'NestedInB' is not available due to missing import of defining module 'members_B'}}
61+
extension X.NestedInB_package {} // expected-member-visibility-error{{'NestedInB_package' is inaccessible due to 'package' protection level}}
5762
extension X.NestedInC {}
5863

5964
func testTopLevelTypes() {
6065
_ = EnumInA.self
6166
_ = EnumInB.self // expected-error{{cannot find 'EnumInB' in scope}}
67+
_ = EnumInB_package.self // expected-error{{cannot find 'EnumInB_package' in scope}}
6268
_ = EnumInC.self
6369
}

test/NameLookup/members_transitive_multifile.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// RUN: %empty-directory(%t)
22
// RUN: split-file %s %t
33
// RUN: %target-swift-frontend -emit-module -o %t %S/Inputs/MemberImportVisibility/members_A.swift
4-
// RUN: %target-swift-frontend -emit-module -I %t -o %t %S/Inputs/MemberImportVisibility/members_B.swift
4+
// RUN: %target-swift-frontend -emit-module -I %t -o %t -package-name TestPackage %S/Inputs/MemberImportVisibility/members_B.swift
55
// RUN: %target-swift-frontend -emit-module -I %t -o %t %S/Inputs/MemberImportVisibility/members_C.swift
66
// RUN: %target-swift-frontend -typecheck -primary-file %t/main.swift %t/A.swift %t/B.swift %t/C.swift -I %t -verify -swift-version 5
77
// RUN: %target-swift-frontend -typecheck -primary-file %t/main.swift %t/A.swift %t/B.swift %t/C.swift -I %t -verify -swift-version 6

0 commit comments

Comments
 (0)