mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
43 lines
1.0 KiB
Swift
43 lines
1.0 KiB
Swift
// RUN: %target-resilience-test --no-symbol-diff
|
|
// REQUIRES: executable_test
|
|
|
|
// Uses swift-version 4.
|
|
// UNSUPPORTED: swift_test_mode_optimize_none_with_implicit_dynamic
|
|
|
|
import StdlibUnittest
|
|
import conformance_reference
|
|
|
|
|
|
var ConformanceReferenceTest = TestSuite("ConformanceReference")
|
|
|
|
|
|
func useBase<T : BaseProtocol>(_: T) {}
|
|
|
|
ConformanceReferenceTest.test("BaseConformance") {
|
|
useBase(FirstGeneric<Int>())
|
|
useBase(SecondGeneric<Int>())
|
|
}
|
|
|
|
|
|
func useDerived<T : DerivedProtocol>(_: T) {}
|
|
|
|
ConformanceReferenceTest.test("DerivedConformance") {
|
|
useDerived(SecondGeneric<Int>())
|
|
}
|
|
|
|
|
|
protocol EvenMoreDerivedProtocol : DerivedProtocol {}
|
|
|
|
extension FirstGeneric : EvenMoreDerivedProtocol {}
|
|
|
|
func useEvenMoreDerived<T : EvenMoreDerivedProtocol>(_ t: T) -> Any.Type {
|
|
return t.getMeAType()
|
|
}
|
|
|
|
ConformanceReferenceTest.test("EvenMoreDerivedConformance") {
|
|
expectTrue(FirstGeneric<Int>.self == useEvenMoreDerived(FirstGeneric<Int>()))
|
|
expectTrue(FirstGeneric<String>.self == useEvenMoreDerived(FirstGeneric<String>()))
|
|
}
|
|
|
|
runAllTests()
|