Files
swift-mirror/test/Interop/Cxx/foreign-reference/member-inheritance-module-interface.swift

138 lines
6.1 KiB
Swift

// RUN: %target-swift-ide-test -print-module -cxx-interoperability-mode=swift-5.9 -print-implicit-attrs -module-to-print=MemberInheritance -I %S/Inputs -source-filename=x | %FileCheck %s
// RUN: %target-swift-ide-test -print-module -cxx-interoperability-mode=swift-6 -print-implicit-attrs -module-to-print=MemberInheritance -I %S/Inputs -source-filename=x | %FileCheck %s
// RUN: %target-swift-ide-test -print-module -cxx-interoperability-mode=upcoming-swift -print-implicit-attrs -module-to-print=MemberInheritance -I %S/Inputs -source-filename=x | %FileCheck %s
// CHECK: class ImmortalBase {
// CHECK: func get42() -> Int32
// CHECK: func getOverridden42() -> Int32
// CHECK: }
// CHECK: class Immortal {
// CHECK: func getOverridden42() -> Int32
// CHECK: func get42() -> Int32
// CHECK: }
// CHECK: class Immortal2 {
// CHECK-NEXT: final func virtualMethod(_: HasDestructor)
// CHECK-NEXT: final func swiftVirtualRename()
// CHECK: }
// CHECK: class A1 {
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: }
// CHECK: class B1 {
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func B1BarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftParamsRename(b1 i: Int32) -> Int32
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: }
// CHECK: class B2 {
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func B2BarRename() -> Int32
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: }
// CHECK: class C1 {
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func B1BarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftParamsRename(b1 i: Int32) -> Int32
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: }
// CHECK: class C2 {
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func C2FooRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func B1BarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftParamsRename(b1 i: Int32) -> Int32
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: }
// CHECK: class A2 {
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func A2BarRename() -> Int32
// CHECK: final func swiftParamsRename(a2 i: Int32) -> Int32
// CHECK: }
// CHECK: class D1 {
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: final func A2BarRename() -> Int32
// CHECK: final func swiftParamsRename(a2 i: Int32) -> Int32
// CHECK: }
// CHECK: class D2 {
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func B1BarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftParamsRename(b1 i: Int32) -> Int32
// CHECK: @available(*, unavailable, message: "overrides{{.*}}")
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: @available(*, unavailable, message: "overrides{{.*}}")
// CHECK: final func swiftBarRename() -> Int32
// CHECK: @available(*, unavailable, message: "overrides{{.*}}")
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: @available(*, unavailable, message: "overrides{{.*}}")
// CHECK: final func A2BarRename() -> Int32
// CHECK: @available(*, unavailable, message: "overrides{{.*}}")
// CHECK: final func swiftParamsRename(a2 i: Int32) -> Int32
// CHECK: }
// CHECK: struct D3 {
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func B1BarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftParamsRename(b1 i: Int32) -> Int32
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: }
// CHECK: struct D4 {
// CHECK: final func swiftFooRename() -> Int32
// CHECK: final func swiftBarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftVirtualMethod() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func B1BarRename() -> Int32
// CHECK: @available(*, unavailable, message: "ignoring{{.*}}")
// CHECK: final func swiftParamsRename(b1 i: Int32) -> Int32
// CHECK: final func virtualMethod() -> Int32
// CHECK: final func swiftParamsRename(a1 i: Int32) -> Int32
// CHECK: }