[FIR] Support diagnostic QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
interface IBase<T> {
|
||||
fun foo() {}
|
||||
fun bar() {}
|
||||
}
|
||||
|
||||
typealias AliasedIBase1 = IBase<String>
|
||||
typealias AliasedIBase = AliasedIBase1
|
||||
|
||||
interface IDerived<T> : IBase<T> {
|
||||
override fun foo() {}
|
||||
fun qux() {}
|
||||
}
|
||||
|
||||
class Test : IDerived<String>, IBase<String> {
|
||||
fun test() {
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.foo()
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.bar()
|
||||
super<IDerived>.foo()
|
||||
super<IDerived>.bar()
|
||||
super<IDerived>.qux()
|
||||
}
|
||||
}
|
||||
|
||||
class Test2 : IDerived<String>, AliasedIBase {
|
||||
fun test() {
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.foo()
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.bar()
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AliasedIBase<!>>.foo()
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AliasedIBase<!>>.bar()
|
||||
super<IDerived>.foo()
|
||||
super<IDerived>.bar()
|
||||
super<IDerived>.qux()
|
||||
}
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
FILE: qualifiedSupertypeExtendedByOtherSupertype.kt
|
||||
public abstract interface IBase<T> : R|kotlin/Any| {
|
||||
public open fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public open fun bar(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
public final typealias AliasedIBase1 = R|IBase<kotlin/String>|
|
||||
public final typealias AliasedIBase = R|AliasedIBase1|
|
||||
public abstract interface IDerived<T> : R|IBase<T>| {
|
||||
public open override fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public open fun qux(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
public final class Test : R|IDerived<kotlin/String>|, R|IBase<kotlin/String>| {
|
||||
public constructor(): R|Test| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
super<R|IBase|>.R|/IBase.foo|()
|
||||
super<R|IBase|>.R|/IBase.bar|()
|
||||
super<R|IDerived|>.R|/IDerived.foo|()
|
||||
super<R|IDerived|>.R|/IBase.bar|()
|
||||
super<R|IDerived|>.R|/IDerived.qux|()
|
||||
}
|
||||
|
||||
}
|
||||
public final class Test2 : R|IDerived<kotlin/String>|, R|AliasedIBase| {
|
||||
public constructor(): R|Test2| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
super<R|IBase|>.R|/IBase.foo|()
|
||||
super<R|IBase|>.R|/IBase.bar|()
|
||||
super<R|AliasedIBase|>.R|/IBase.foo|()
|
||||
super<R|AliasedIBase|>.R|/IBase.bar|()
|
||||
super<R|IDerived|>.R|/IDerived.foo|()
|
||||
super<R|IDerived|>.R|/IBase.bar|()
|
||||
super<R|IDerived|>.R|/IDerived.qux|()
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user