FIR: add a resolution mode for property delegates
Like function arguments, they are context-dependent, but unlike function arguments, callable references should be resolved eagerly as if they are explicit receivers.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
// WITH_REFLECT
|
||||
// WITH_RUNTIME
|
||||
class C(val x: String)
|
||||
|
||||
val x = "O"
|
||||
val y by ::x
|
||||
val z by C("K")::x
|
||||
|
||||
fun box(): String = y + z
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
Failures detected in FirBodyResolveTransformerAdapter, file: /provideDelegateOnFunctionalTypeWithThis.fir.kt
|
||||
Cause: java.lang.ClassCastException: org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl cannot be cast to org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
+1
-1
@@ -13,7 +13,7 @@ fun wrong(arg: Wrong) {}
|
||||
class Wrong
|
||||
|
||||
class Right {
|
||||
val prop: () -> Unit by <!DELEGATE_SPECIAL_FUNCTION_MISSING, DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>::wrong<!>
|
||||
val prop: () -> Unit by <!UNRESOLVED_REFERENCE!>::wrong<!>
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
|
||||
Reference in New Issue
Block a user