2ecba6ac39
This directive anyway does not make test run twice with OI, and with NI It only once run the test with specific settings (// LANGUAGE) and ignores irrelevant (OI or NI tags)
38 lines
1.7 KiB
Kotlin
Vendored
38 lines
1.7 KiB
Kotlin
Vendored
open class GenericBaseClass<T> {
|
|
open fun foo(x: T): T = x
|
|
open fun ambiguous(x: T): T = x
|
|
}
|
|
|
|
interface GenericBaseInterface<T> {
|
|
fun bar(x: T): T = x
|
|
fun ambiguous(x: T): T = x
|
|
}
|
|
|
|
class GenericDerivedClass<T> : GenericBaseClass<T>(), GenericBaseInterface<T> {
|
|
override fun foo(x: T): T = super.foo(x)
|
|
override fun bar(x: T): T = super.bar(x)
|
|
|
|
override fun ambiguous(x: T): T =
|
|
<!AMBIGUOUS_SUPER!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>ambiguous<!>(x)
|
|
}
|
|
|
|
class <!CONFLICTING_JVM_DECLARATIONS!>SpecializedDerivedClass<!> : GenericBaseClass<Int>(), GenericBaseInterface<String> {
|
|
override fun foo(x: Int): Int = super.foo(x)
|
|
override fun bar(x: String): String = super.bar(x)
|
|
|
|
override fun ambiguous(x: String): String =
|
|
<!AMBIGUOUS_SUPER!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>ambiguous<!>(x)
|
|
override fun ambiguous(x: Int): Int =
|
|
<!AMBIGUOUS_SUPER!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>ambiguous<!>(x)
|
|
}
|
|
|
|
class <!CONFLICTING_JVM_DECLARATIONS!>MixedDerivedClass<!><T> : GenericBaseClass<Int>(), GenericBaseInterface<T> {
|
|
override fun foo(x: Int): Int = super.foo(x)
|
|
override fun bar(x: T): T = super.bar(x)
|
|
|
|
override fun ambiguous(x: Int): Int =
|
|
<!AMBIGUOUS_SUPER!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>ambiguous<!>(x)
|
|
<!CONFLICTING_JVM_DECLARATIONS!>override fun ambiguous(x: T): T<!> =
|
|
<!AMBIGUOUS_SUPER!>super<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>ambiguous<!>(x)
|
|
}
|