[FIR] Do not dereference delegate in lazy mode

Tenth step for ^KT-52615
This commit is contained in:
Egor Kulikov
2023-02-24 14:13:05 +01:00
committed by teamcity
parent 7ce2f64c18
commit 163017fcaf
9 changed files with 42 additions and 26 deletions
@@ -34,5 +34,7 @@ abstract class FirWrappedDelegateExpression : FirWrappedExpression() {
abstract override fun replaceExpression(newExpression: FirExpression)
abstract fun replaceDelegateProvider(newDelegateProvider: FirExpression)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirWrappedDelegateExpression
}
@@ -56,4 +56,8 @@ internal class FirWrappedDelegateExpressionImpl(
override fun replaceExpression(newExpression: FirExpression) {
expression = newExpression
}
override fun replaceDelegateProvider(newDelegateProvider: FirExpression) {
delegateProvider = newDelegateProvider
}
}
@@ -628,7 +628,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
wrappedDelegateExpression.configure {
+field("delegateProvider", expression)
+field("delegateProvider", expression).withReplace()
}
namedReference.configure {