mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
We already have an option to skip /all/ unavailable decls. Singling out the ones that are specifically unavailable-in-Swift just makes testing harder. This will not affect interface generation in Xcode, which sets that option to skip all unavailable decls.
114 lines
4.8 KiB
Swift
114 lines
4.8 KiB
Swift
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -import-objc-header %S/Inputs/custom-modules/CollisionImportAsMember.h -I %t -I %S/Inputs/custom-modules -print-module -source-filename %s -module-to-print=InferImportAsMember -always-argument-labels -enable-infer-import-as-member -skip-unavailable > %t.printed.A.txt
|
|
// RUN: %target-swift-frontend -typecheck -import-objc-header %S/Inputs/custom-modules/CollisionImportAsMember.h -I %t -I %S/Inputs/custom-modules %s -enable-infer-import-as-member -verify
|
|
// RUN: %FileCheck %s -check-prefix=PRINT -strict-whitespace < %t.printed.A.txt
|
|
|
|
// REQUIRES: objc_interop
|
|
|
|
import InferImportAsMember
|
|
let mine = IAMStruct1()
|
|
let _ = mine.getCollisionNonProperty(1)
|
|
|
|
// TODO: more cases, eventually exhaustive, as we start inferring the result we
|
|
// want
|
|
|
|
// PRINT-LABEL: struct IAMStruct1 {
|
|
// PRINT-NEXT: var x: Double
|
|
// PRINT-NEXT: var y: Double
|
|
// PRINT-NEXT: var z: Double
|
|
// PRINT-NEXT: init()
|
|
// PRINT-NEXT: init(x x: Double, y y: Double, z z: Double)
|
|
// PRINT-NEXT: }
|
|
|
|
// PRINT-LABEL: extension IAMStruct1 {
|
|
// PRINT-NEXT: static var globalVar: Double
|
|
//
|
|
// PRINT-LABEL: /// Init
|
|
// PRINT-NEXT: init(copyIn in: IAMStruct1)
|
|
// PRINT-NEXT: init(simpleValue value: Double)
|
|
// PRINT-NEXT: init(redundant redundant: Double)
|
|
// PRINT-NEXT: init(specialLabel specialLabel: ())
|
|
//
|
|
// PRINT-LABEL: /// Methods
|
|
// PRINT-NEXT: func invert() -> IAMStruct1
|
|
// PRINT-NEXT: mutating func invertInPlace()
|
|
// PRINT-NEXT: func rotate(radians radians: Double) -> IAMStruct1
|
|
// PRINT-NEXT: func selfComesLast(x x: Double)
|
|
// PRINT-NEXT: func selfComesThird(a a: Double, b b: Float, x x: Double)
|
|
//
|
|
// PRINT-LABEL: /// Properties
|
|
// PRINT-NEXT: var radius: Double { get nonmutating set }
|
|
// PRINT-NEXT: var altitude: Double
|
|
// PRINT-NEXT: var magnitude: Double { get }
|
|
// PRINT-NEXT: var length: Double
|
|
//
|
|
// PRINT-LABEL: /// Various instance functions that can't quite be imported as properties.
|
|
// PRINT-NEXT: func getNonPropertyNumParams() -> Float
|
|
// PRINT-NEXT: func setNonPropertyNumParams(a a: Float, b b: Float)
|
|
// PRINT-NEXT: func getNonPropertyType() -> Float
|
|
// PRINT-NEXT: func setNonPropertyType(x x: Double)
|
|
// PRINT-NEXT: func getNonPropertyNoSelf() -> Float
|
|
// PRINT-NEXT: static func setNonPropertyNoSelf(x x: Double, y y: Double)
|
|
// PRINT-NEXT: func setNonPropertyNoGet(x x: Double)
|
|
// PRINT-NEXT: func setNonPropertyExternalCollision(x x: Double)
|
|
//
|
|
// PRINT-LABEL: /// Various static functions that can't quite be imported as properties.
|
|
// PRINT-NEXT: static func staticGetNonPropertyNumParams() -> Float
|
|
// PRINT-NEXT: static func staticSetNonPropertyNumParams(a a: Float, b b: Float)
|
|
// PRINT-NEXT: static func staticGetNonPropertyNumParamsGetter(d d: Double)
|
|
// PRINT-NEXT: static func staticGetNonPropertyType() -> Float
|
|
// PRINT-NEXT: static func staticSetNonPropertyType(x x: Double)
|
|
// PRINT-NEXT: static func staticGetNonPropertyNoSelf() -> Float
|
|
// PRINT-NEXT: static func staticSetNonPropertyNoSelf(x x: Double, y y: Double)
|
|
// PRINT-NEXT: static func staticSetNonPropertyNoGet(x x: Double)
|
|
//
|
|
// PRINT-LABEL: /// Static method
|
|
// PRINT-NEXT: static func staticMethod() -> Double
|
|
// PRINT-NEXT: static func tlaThreeLetterAcronym() -> Double
|
|
//
|
|
// PRINT-LABEL: /// Static computed properties
|
|
// PRINT-NEXT: static var staticProperty: Double
|
|
// PRINT-NEXT: static var staticOnlyProperty: Double { get }
|
|
//
|
|
// PRINT-LABEL: /// Omit needless words
|
|
// PRINT-NEXT: static func onwNeedlessTypeArgLabel(_ Double: Double) -> Double
|
|
//
|
|
// PRINT-LABEL: /// Fuzzy
|
|
// PRINT-NEXT: init(fuzzy fuzzy: ())
|
|
// PRINT-NEXT: init(fuzzyWithFuzzyName fuzzyWithFuzzyName: ())
|
|
// PRINT-NEXT: init(fuzzyName fuzzyName: ())
|
|
//
|
|
// PRINT-NEXT: func getCollisionNonProperty(_ _: Int32) -> Float
|
|
//
|
|
// PRINT-NEXT: }
|
|
//
|
|
// PRINT-NEXT: func __IAMStruct1IgnoreMe(_ s: IAMStruct1) -> Double
|
|
//
|
|
// PRINT-LABEL: /// Mutable
|
|
// PRINT-NEXT: struct IAMMutableStruct1 {
|
|
// PRINT-NEXT: init()
|
|
// PRINT-NEXT: }
|
|
// PRINT-NEXT: extension IAMMutableStruct1 {
|
|
// PRINT-NEXT: init(with withIAMStruct1: IAMStruct1)
|
|
// PRINT-NEXT: init(url url: UnsafePointer<Int8>!)
|
|
// PRINT-NEXT: func doSomething()
|
|
// PRINT-NEXT: }
|
|
//
|
|
// PRINT-LABEL: struct TDStruct {
|
|
// PRINT-NEXT: var x: Double
|
|
// PRINT-NEXT: init()
|
|
// PRINT-NEXT: init(x x: Double)
|
|
// PRINT-NEXT: }
|
|
// PRINT-NEXT: extension TDStruct {
|
|
// PRINT-NEXT: init(float Float: Float)
|
|
// PRINT-NEXT: }
|
|
//
|
|
// PRINT-LABEL: /// Class
|
|
// PRINT-NEXT: class IAMClass {
|
|
// PRINT-NEXT: }
|
|
// PRINT-NEXT: typealias IAMOtherName = IAMClass
|
|
// PRINT-NEXT: extension IAMClass {
|
|
// PRINT-NEXT: class var typeID: UInt32 { get }
|
|
// PRINT-NEXT: init!(i i: Double)
|
|
// PRINT-NEXT: class func invert(_ iamOtherName: IAMOtherName!)
|
|
// PRINT-NEXT: }
|