mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
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
37 lines
1.7 KiB
Swift
37 lines
1.7 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-module -o %t/SomeObjCModule.swiftmodule -module-name SomeObjCModule -I %t -I %S/Inputs -swift-version 4 %S/Inputs/SomeObjCModuleX.swift
|
|
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-module -o %t/SomeSwift4Module.swiftmodule -module-name SomeSwift4Module -I %t -I %S/Inputs -swift-version 4 %s
|
|
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-module -o %t/SomeSwift5Module.swiftmodule -module-name SomeSwift5Module -I %t -I %S/Inputs -swift-version 5 %S/Inputs/witness_change_swift5.swift
|
|
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -c -I %t -I %S/Inputs -swift-version 4 %S/Inputs/witness_change_swift4_leaf.swift
|
|
|
|
// REQUIRES: objc_interop
|
|
|
|
// Swift 4 sees the ObjC class NSRuncibleSpoon as the class, and uses methods
|
|
// with type signatures involving NSRuncibleSpoon to conform to protocols
|
|
// across the language boundary. Swift 5 sees the type as bridged to
|
|
// a RuncibleSpoon value type, but still needs to be able to use conformances
|
|
// declared by Swift 4.
|
|
|
|
// Swift 4
|
|
|
|
import SomeObjCModule
|
|
|
|
_ = RuncibleSpoon()
|
|
|
|
public class SomeSwift4Class: NSObject {
|
|
public required init(someObjCInitRequirement x: NSRuncibleSpoon) {
|
|
someObjCPropertyRequirement = x
|
|
}
|
|
public func someObjCMethodRequirement(_: NSRuncibleSpoon) {}
|
|
public var someObjCPropertyRequirement: NSRuncibleSpoon
|
|
}
|
|
extension SomeSwift4Class: SomeObjCProtocol {}
|
|
|
|
public protocol SomeSwift4Protocol {
|
|
init(someSwiftInitRequirement: NSRuncibleSpoon)
|
|
func someSwiftMethodRequirement(_: NSRuncibleSpoon)
|
|
var someSwiftPropertyRequirement: NSRuncibleSpoon { get }
|
|
}
|
|
extension SomeObjCClass: SomeSwift4Protocol {}
|
|
|