Files
swift-mirror/test/Interpreter/SDK/objc_extensions.swift
Slava Pestov 38fdb6b7ff Update various tests to not use Swift 3 code
Completely mechanical changes:

- Explicit @objc in a few places
- Some imported APIs changed
- For the mix-and-match tests, just test version 4/5 instead of 3/4
2018-10-26 20:15:01 -04:00

60 lines
1.1 KiB
Swift

// RUN: %target-run-simple-swift | %FileCheck %s
// REQUIRES: executable_test
// REQUIRES: objc_interop
import Foundation
extension NSObject {
@objc func frob() {
print("I've been frobbed!")
}
@objc var asHerself : NSObject {
return self
}
@objc var blackHoleWithHawkingRadiation : NSObject? {
get {
print("e+")
return nil
}
set {
print("e-")
}
}
}
var o = NSObject()
func drop(_ x: NSObject?) {}
// CHECK: true
print(o.responds(to: "frob"))
// CHECK: true
print(o.responds(to: "asHerself"))
// CHECK: false
print(o.responds(to: "setAsHerself:"))
// CHECK: true
print(o.responds(to: "blackHoleWithHawkingRadiation"))
// CHECK: true
print(o.responds(to: "setBlackHoleWithHawkingRadiation:"))
// Test #selector for referring to methods.
// CHECK: true
print(o.responds(to: #selector(NSObject.frob)))
// CHECK: I've been frobbed!
o.frob()
// CHECK: true
print(o === o.asHerself)
// CHECK: e+
drop(o.blackHoleWithHawkingRadiation)
// CHECK: e-
o.blackHoleWithHawkingRadiation = NSObject()
// Use of extensions via bridging
let str = "Hello, world"
// CHECK: I've been frobbed!
str.frob()