// 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!) // 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: }