Resolve expression in property delegate
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
trait A {
|
||||
val prop: Int
|
||||
}
|
||||
|
||||
class AImpl: A {
|
||||
override val prop by Delegate()
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
AImpl().prop
|
||||
}
|
||||
|
||||
class Delegate {
|
||||
fun get(t: Any?, p: String): Int {
|
||||
t.equals(p) // to avoid UNUSED_PARAMETER warning
|
||||
return 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
class B {
|
||||
val c by Delegate(<!UNRESOLVED_REFERENCE!>ag<!>)
|
||||
}
|
||||
|
||||
class Delegate<T: Any>(val init: T) {
|
||||
fun get(t: Any?, p: String): Int {
|
||||
t.equals(p) // to avoid UNUSED_PARAMETER warning
|
||||
throw Exception()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
val a by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>
|
||||
|
||||
val b by Delegate(<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>b<!>)
|
||||
|
||||
val c by <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>d<!>
|
||||
val d by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>c<!>
|
||||
|
||||
class Delegate(i: Int) {
|
||||
fun get(t: Any?, p: String): Int {
|
||||
t.equals(p) // to avoid UNUSED_PARAMETER warning
|
||||
return 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
val Int.a by Delegate(<!NO_THIS!>this<!>)
|
||||
|
||||
class A {
|
||||
val Int.a by Delegate(<!TYPE_MISMATCH!>this<!>)
|
||||
}
|
||||
|
||||
class Delegate(i: Int) {
|
||||
fun get(t: Any?, p: String): Int {
|
||||
t.equals(p) // to avoid UNUSED_PARAMETER warning
|
||||
return 1
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user