Files
swift-mirror/validation-test/Evolution/test_conformance_reference.swift
Slava Pestov 6798eea160 Evolution: Some of these tests pass with swift_test_mode_optimize_none_with_implicit_dynamic
The remaining failures still warrant investigation.
2019-06-11 00:54:32 -07:00

40 lines
953 B
Swift

// RUN: %target-resilience-test --no-symbol-diff
// REQUIRES: executable_test
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()