Files
swift-mirror/test/Interop/Cxx/class/access/non-public-shadow-module-interface.swift
John Hui 9dc1174994 [cxx-interop] [NFC] Stabilize interface order of Clang record members
We may visit and thus import these members in an unpredictable order.
To avoid future churn for module interface test cases, sort the printed
module interface output according to some rough heuristics.
2026-02-07 10:54:12 -08:00

35 lines
1.8 KiB
Swift

// RUN: %target-swift-ide-test -print-module -module-to-print=NonPublicShadow -print-access -I %S/Inputs -source-filename=x -cxx-interoperability-mode=default -enable-experimental-feature ImportNonPublicCxxMembers | %FileCheck %s
// REQUIRES: swift_feature_ImportNonPublicCxxMembers
// We only check the module interface of Shadow to keep this test concise
// CHECK: public struct Shadow {
// Currently, ImportDecl.cpp::loadAllMembersOfRecordDecl() does not correctly
// handle multiple inheritance, so it only loads one of each ambiguous member.
// TODO: public func publOrPriv() -> Return
// TODO: @available(*, unavailable, message: "this base member is not accessible because it is private")
// TODO: private func publOrPriv() -> Return
// TODO: private func protOrPriv() -> Return
// TODO: @available(*, unavailable, message: "this base member is not accessible because it is private")
// TODO: private func protOrPriv() -> Return
// TODO: public func publOrProt() -> Return
// TODO: private func publOrProt() -> Return
// CHECK-NEXT: public init()
// CHECK-NEXT: private func publOrProt() -> Return
// CHECK-NEXT: @available(*, unavailable, message: "this base member is not accessible because it is private")
// CHECK-NEXT: private func publOrPriv() -> Return
// CHECK-NEXT: @available(*, unavailable, message: "this base member is not accessible because it is private")
// CHECK-NEXT: private func protOrPriv() -> Return
// CHECK-NEXT: public func publPublShadowed() -> Return
// CHECK-NEXT: public func protPublShadowed() -> Return
// CHECK-NEXT: public func privPublShadowed() -> Return
// CHECK-NEXT: private func publPrivShadowed() -> Return
// CHECK-NEXT: private func protPrivShadowed() -> Return
// CHECK-NEXT: private func privPrivShadowed() -> Return
// CHECK: }