mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
ClangImporter can now import non-public members as ofbe73254cdcand66c2e2c52b, but doing so triggers some latent ClangImporter bugs in projects that don't use or need those non-public members. This patch introduces a new experimental feature flag, ImportNonPublicCxxMembers, that guards against the importation of non-public members while we iron out those latent issues. Adopters of the SWIFT_PRIVATE_FILEID feature introduced inbdf22948cecan enable this flag to opt into importing private members they wish to access from Swift. rdar://145569473
42 lines
1.4 KiB
Swift
42 lines
1.4 KiB
Swift
// RUN: %target-run-simple-swift(-I %S/Inputs/ -Xfrontend -cxx-interoperability-mode=default -enable-experimental-feature ImportNonPublicCxxMembers)
|
|
// REQUIRES: executable_test
|
|
// REQUIRES: swift_feature_ImportNonPublicCxxMembers
|
|
|
|
import StdlibUnittest
|
|
import UsingNonPublic
|
|
|
|
var Suite = TestSuite("Using Base methods")
|
|
|
|
Suite.test("PublUser: using statements with public inheritance") {
|
|
let p = PublUser()
|
|
expectEqual(p.publUsingPubl(), Return.publUsingPubl)
|
|
expectEqual(p.publUsingProt(), Return.publUsingProt)
|
|
expectEqual(p.omitUsingPubl(), Return.omitUsingPubl)
|
|
}
|
|
|
|
Suite.test("ProtUser: using statements with protected inheritance") {
|
|
let p = ProtUser()
|
|
expectEqual(p.publUsingPubl(), Return.publUsingPubl)
|
|
expectEqual(p.publUsingProt(), Return.publUsingProt)
|
|
}
|
|
|
|
Suite.test("PrivUser: using statements with private inheritance") {
|
|
let p = PrivUser()
|
|
expectEqual(p.publUsingPubl(), Return.publUsingPubl)
|
|
expectEqual(p.publUsingProt(), Return.publUsingProt)
|
|
}
|
|
|
|
Suite.test("PublPrivUser: inheriting using statements") {
|
|
let p = PublPrivUser()
|
|
expectEqual(p.publUsingPubl(), Return.publUsingPubl)
|
|
expectEqual(p.publUsingProt(), Return.publUsingProt)
|
|
}
|
|
|
|
Suite.test("PrivUserPubl: using inherited members") {
|
|
let p = PrivUserPubl()
|
|
expectEqual(p.publUsingPubl(), Return.publUsingPubl)
|
|
expectEqual(p.publUsingProt(), Return.publUsingProt)
|
|
}
|
|
|
|
runAllTests()
|