blob: a239e2392bf075bde40db8c81a4510da287cd58f [file] [log] [blame]
// 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()