blob: d47de880ad10e1f51703e97dde78132bfe773a93 [file] [log] [blame]
// 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: }