[FIR] Implement VAR_OVERRIDDEN_BY_VAL_BY_DELEGATION diagnostic
This commit is contained in:
committed by
teamcityserver
parent
c98cd3b190
commit
78519f851e
-55
@@ -1,55 +0,0 @@
|
||||
open class Final {
|
||||
fun foo() {}
|
||||
val bar: Int = 0
|
||||
var qux: Int = 0
|
||||
}
|
||||
|
||||
open class Derived : Final()
|
||||
|
||||
interface IFoo {
|
||||
fun foo()
|
||||
}
|
||||
|
||||
class CFoo : IFoo {
|
||||
override fun foo() {}
|
||||
}
|
||||
|
||||
interface IBar {
|
||||
val bar: Int
|
||||
}
|
||||
|
||||
class CBar : IBar {
|
||||
override val bar: Int get() = 0
|
||||
}
|
||||
|
||||
interface IQux {
|
||||
val qux: Int
|
||||
}
|
||||
|
||||
class CQux : IQux {
|
||||
override val qux: Int get() = 0
|
||||
}
|
||||
|
||||
interface IBarT<T> {
|
||||
val bar: T
|
||||
}
|
||||
|
||||
class CBarT<T> : IBarT<T> {
|
||||
override val bar: T get() = null!!
|
||||
}
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test1<!> : Final(), IFoo by CFoo()
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test2<!> : Final(), IBar by CBar()
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test3<!> : Final(), IQux by CQux()
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test4<!> : Derived(), IFoo by CFoo()
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test5<!> : Derived(), IBar by CBar()
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test6<!> : Derived(), IQux by CQux()
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test7<!> : Final(), IBarT<Int> by CBarT<Int>()
|
||||
|
||||
<!OVERRIDING_FINAL_MEMBER_BY_DELEGATION!>class Test8<!> : Final(), IBarT<Int> by <!TYPE_MISMATCH!>CBar()<!>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
open class Final {
|
||||
fun foo() {}
|
||||
val bar: Int = 0
|
||||
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
interface IVar {
|
||||
var foo: Int
|
||||
}
|
||||
|
||||
interface IDerived : IVar
|
||||
|
||||
interface IVal {
|
||||
val foo: Int
|
||||
}
|
||||
|
||||
class CVal : IVal {
|
||||
override val foo: Int get() = 42
|
||||
}
|
||||
|
||||
interface IValT<T> {
|
||||
val foo: T
|
||||
}
|
||||
|
||||
class CValT<T> : IValT<T> {
|
||||
override val foo: T get() = null!!
|
||||
}
|
||||
|
||||
abstract class Test1 : IVar, IVal by CVal()
|
||||
|
||||
abstract class Test2 : IVar, IValT<Int> by CValT<Int>()
|
||||
|
||||
abstract class Test3 : IDerived, IVal by CVal()
|
||||
|
||||
abstract class Test4 : IDerived, IValT<Int> by CValT<Int>()
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
interface IVar {
|
||||
var foo: Int
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user