FIR. Refactor smart-cast representation in FIR tree
Make smart-casts non-transparent expression without delegation to underlying FirQualifiedAccessExpression, as children delegation in fir tree has unclear semantics Remove two different kinds of tree nodes for smart-casts
This commit is contained in:
committed by
teamcity
parent
bc9db58b3c
commit
513af2dfbc
+18
@@ -0,0 +1,18 @@
|
||||
interface Foo {
|
||||
fun Bar.foo()
|
||||
}
|
||||
|
||||
interface Bar {}
|
||||
|
||||
inline fun <T, R> myWith(argument: T, lambda: T.() -> R): R {
|
||||
argument.lambda()
|
||||
}
|
||||
|
||||
fun Any.action(other: Any) {
|
||||
if (this is Foo) {
|
||||
with(other) {
|
||||
this as Bar
|
||||
<expr>foo</expr>()
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
expression: foo
|
||||
isStable: null
|
||||
smartCastType: null
|
||||
receiver: DISPATCH
|
||||
smartCastType: Foo
|
||||
receiver: EXTENSION
|
||||
smartCastType: Bar
|
||||
Reference in New Issue
Block a user