blob: 1af01010e1c32bbd0c069abeefea89cec10b75a4 [file] [log] [blame]
// UNSUPPORTED: CPU=i386 && OS=ios
// UNSUPPORTED: CPU=armv7 && OS=ios
// UNSUPPORTED: CPU=armv7s && OS=ios
// UNSUPPORTED: CPU=armv7k && OS=ios
// Exclude iOS-based 32-bit platforms because the Foundation overlays introduce
// an extra dependency on _KeyValueCodingAndObservingPublishing only for 64-bit
// platforms.
// REQUIRES: objc_interop
// RUN: %empty-directory(%t)
// RUN: %{python} %S/../gen-output-file-map.py -o %t %S
// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -module-name main -verify-incremental-dependencies %s
import Foundation
// expected-provides {{LookupFactory}}
// expected-provides {{NSObject}}
// expected-superclass {{ObjectiveC.NSObject}}
// expected-conformance {{ObjectiveC.NSObjectProtocol}}
// expected-conformance {{Foundation._KeyValueCodingAndObserving}}
// expected-conformance {{Foundation._KeyValueCodingAndObservingPublishing}}
// expected-conformance {{Swift.Hashable}}
// expected-conformance {{Swift.Equatable}}
// expected-conformance {{Swift.CustomDebugStringConvertible}}
// expected-conformance {{Swift.CVarArg}}
// expected-conformance {{Swift.CustomStringConvertible}}
// expected-member {{Swift._ExpressibleByBuiltinIntegerLiteral.init}}
@objc private class LookupFactory: NSObject {
// expected-provides {{AssignmentPrecedence}}
// expected-provides {{IntegerLiteralType}}
// expected-provides {{FloatLiteralType}}
// expected-provides {{Int}}
// expected-member {{ObjectiveC.NSObject.someMember}}
// expected-member {{ObjectiveC.NSObject.Int}}
// expected-member {{ObjectiveC.NSObjectProtocol.someMember}}
// expected-member {{ObjectiveC.NSObjectProtocol.Int}}
// expected-member {{main.LookupFactory.Int}}
@objc var someMember: Int = 0
// expected-member {{ObjectiveC.NSObject.someMethod}}
// expected-member {{ObjectiveC.NSObjectProtocol.someMethod}}
@objc func someMethod() {}
// expected-member {{ObjectiveC.NSObject.init}}
// expected-member {{ObjectiveC.NSObjectProtocol.init}}
// expected-member {{main.LookupFactory.init}}
// expected-member {{main.LookupFactory.deinit}}
// expected-member {{main.LookupFactory.someMember}}
// expected-member {{main.LookupFactory.someMethod}}
}
// expected-member {{Swift.ExpressibleByNilLiteral.callAsFunction}}
// expected-member {{Swift.CustomReflectable.callAsFunction}}
// expected-member {{Swift._ObjectiveCBridgeable.callAsFunction}}
// expected-member {{Swift.Optional<Wrapped>.callAsFunction}}
// expected-member {{Swift.CustomDebugStringConvertible.callAsFunction}}
// expected-member {{Swift.Equatable.callAsFunction}}
// expected-member {{Swift.Hashable.callAsFunction}}
// expected-member {{Swift.Encodable.callAsFunction}}
// expected-member {{Swift.Decodable.callAsFunction}}
// expected-member {{Foundation._OptionalForKVO.callAsFunction}}
// SWIFT_ENABLE_TENSORFLOW
// expected-member {{Swift.Differentiable.callAsFunction}}
// SWIFT_ENABLE_TENSORFLOW END
// expected-provides {{AnyObject}}
func lookupOnAnyObject(object: AnyObject) { // expected-provides {{lookupOnAnyObject}}
_ = object.someMember // expected-dynamic-member {{someMember}}
object.someMethod() // expected-dynamic-member {{someMethod}}
}
// expected-member {{Swift.Hashable.someMethod}}
// expected-member {{Foundation._KeyValueCodingAndObserving.someMethod}}
// expected-member {{Foundation._KeyValueCodingAndObservingPublishing.someMethod}}
// expected-member {{Swift.Equatable.someMethod}}
// expected-member {{Swift.CVarArg.someMethod}}
// expected-member {{Swift.CustomStringConvertible.someMethod}}
// expected-member {{Swift.CustomDebugStringConvertible.someMethod}}
// expected-member {{Swift.Equatable.someMember}}
// expected-member{{Swift.CustomDebugStringConvertible.init}}
// expected-member{{Swift.CVarArg.someMember}}
// expected-member{{Foundation._KeyValueCodingAndObservingPublishing.someMember}}
// expected-member{{Swift.Equatable.init}}
// expected-member{{Swift.Hashable.init}}
// expected-member{{Swift.CVarArg.init}}
// expected-member{{Foundation._KeyValueCodingAndObserving.someMember}}
// expected-member{{Foundation._KeyValueCodingAndObservingPublishing.init}}
// expected-member{{Swift.CustomDebugStringConvertible.someMember}}
// expected-member{{Swift.CustomStringConvertible.someMember}}
// expected-member{{Swift.CustomStringConvertible.init}}
// expected-member{{Swift.Hashable.someMember}}
// expected-member{{Foundation._KeyValueCodingAndObserving.init}}