[IR] Add special preprocessors for ir interpreter

These preprocessors allow us to modify IR at first and only after that
try to evaluate. With this we can drop `KCallableNamePropertyLowering`.
This commit is contained in:
Ivan Kylchik
2023-04-28 13:18:06 +02:00
committed by Space Team
parent c8371a339f
commit e58e20fc7b
10 changed files with 126 additions and 115 deletions
@@ -17,13 +17,16 @@ class A {
val b = A::b.<!EVALUATED("b")!>name<!>
val c = ::A.<!EVALUATED("<init>")!>name<!>
val d = this::a.name
val d = this::a.<!EVALUATED("a")!>name<!>
val e = A()::b.name
val f = getA()::b.name
val e = A()::b.<!EVALUATED("b")!>name<!>
val f = getA()::b.<!EVALUATED("b")!>name<!>
val temp = A()
val g = temp::b.name
val g = temp::b.<!EVALUATED("b")!>name<!>
val complexExpression1 = A()::a.<!EVALUATED("a")!>name<!> + A()::b.<!EVALUATED("b")!>name<!>
val complexExpression2 = A::a.<!EVALUATED("a")!>name<!> <!EVALUATED("ab")!>+ A::b.<!EVALUATED("b")!>name<!><!>
}
fun getA(): A = A()