mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
30 lines
1.6 KiB
Swift
30 lines
1.6 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend -module-name cross_module_optional_protocol_reqt -c -emit-module-path %t/cross_module_optional_protocol_reqt~partial.swiftmodule -primary-file %s %S/Inputs/cross_module_optional_protocol_reqt_2.swift -import-objc-header %S/Inputs/cross_module_optional_protocol_reqt.h -o /dev/null
|
|
// RUN: %target-swift-frontend -module-name cross_module_optional_protocol_reqt -c -emit-module-path %t/cross_module_optional_protocol_reqt_2~partial.swiftmodule %s -primary-file %S/Inputs/cross_module_optional_protocol_reqt_2.swift -import-objc-header %S/Inputs/cross_module_optional_protocol_reqt.h -o /dev/null
|
|
// RUN: %target-swift-frontend -module-name cross_module_optional_protocol_reqt -emit-module -emit-module-path %t/cross_module_optional_protocol_reqt.swiftmodule %t/cross_module_optional_protocol_reqt~partial.swiftmodule %t/cross_module_optional_protocol_reqt_2~partial.swiftmodule -import-objc-header %S/Inputs/cross_module_optional_protocol_reqt.h
|
|
// RUN: %target-swift-frontend -I %t -typecheck %s -DTEST -module-name main
|
|
// REQUIRES: objc_interop
|
|
|
|
#if TEST
|
|
|
|
import cross_module_optional_protocol_reqt
|
|
|
|
func test(_ foo: Foo) {
|
|
// At one point this forced deserialization of the conformance to ObjCProto,
|
|
// which was corrupted by the presence of the optional requirement with no
|
|
// witness.
|
|
foo.nonoptionalMethod()
|
|
foo.nonoptionalMethod2()
|
|
}
|
|
|
|
#else // TEST
|
|
|
|
public protocol SwiftProto: ObjCProto {}
|
|
|
|
public class Foo: ObjCFoo, SwiftProto {
|
|
public func nonoptionalMethod() {}
|
|
public func nonoptionalMethod2() {}
|
|
}
|
|
|
|
#endif // TEST
|