blob: d801b4cb049a1068e9c783e1a52036349182bac5 [file] [log] [blame]
// RUN: %empty-directory(%t)
// RUN: %target-build-swift %s -module-name main -o %t/a.out
// RUN: %target-codesign %t/a.out
// RUN: %target-run %t/a.out
// REQUIRES: executable_test
// REQUIRES: objc_interop
import Foundation
import StdlibUnittest
@objc(MyObjCProtocol) public protocol MyProtocol { }
public protocol OtherProtocol {
associatedtype AssocType
}
public struct MyThing: OtherProtocol {
public typealias AssocType = MyProtocol
}
func getAssocType<T: OtherProtocol>(_: T.Type) -> Any.Type {
return T.AssocType.self
}
let RenamedObjCDemangleTests = TestSuite("RenamedObjCDemangle")
RenamedObjCDemangleTests.test("@objc protocols") {
expectEqual(getAssocType(MyThing.self), MyProtocol.self)
}
@objc(MyObjCClass) class MyClass: NSObject { }
struct MyClassWrapper: OtherProtocol {
typealias AssocType = MyClass
}
RenamedObjCDemangleTests.test("@objc classes") {
expectEqual(getAssocType(MyClassWrapper.self), MyClass.self)
}
runAllTests()