From a585d206392b06e32a2d3741ca55cd2c07e8e358 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 13 Oct 2020 22:30:10 +0300 Subject: [PATCH] FIR IDE: fix bodies calculator for property acessors --- .../lazy/resolve/FirLazyBodiesCalculator.kt | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt index d8279c8403a..f786a565849 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt @@ -54,26 +54,27 @@ internal object FirLazyBodiesCalculator { val rawFirBuilder = createRawFirBuilder(firProperty) val newProperty = rawFirBuilder.buildPropertyWithBody(firProperty.psi as KtProperty) - newProperty.apply { - getter?.takeIf { it.body is FirLazyBlock }?.let { getter -> - val newGetter = newProperty.getter!! - getter.replaceBody(newGetter.body) - getter.replaceContractDescription(newGetter.contractDescription) - } - setter?.takeIf { it.body is FirLazyBlock }?.let { setter -> - val newSetter = newProperty.setter!! - setter.replaceBody(newSetter.body) - setter.replaceContractDescription(newSetter.contractDescription) - } - if (firProperty.initializer is FirLazyExpression) { - firProperty.replaceInitializer(newProperty.initializer) - } - val delegate = firProperty.delegate - if (delegate is FirWrappedDelegateExpression && delegate.expression is FirLazyExpression) { - val newDelegate = newProperty.delegate as FirWrappedDelegateExpression - delegate.replaceExpression(newDelegate.expression) - } + firProperty.getter?.takeIf { it.body is FirLazyBlock }?.let { getter -> + val newGetter = newProperty.getter!! + getter.replaceBody(newGetter.body) + getter.replaceContractDescription(newGetter.contractDescription) + } + + firProperty.setter?.takeIf { it.body is FirLazyBlock }?.let { setter -> + val newSetter = newProperty.setter!! + setter.replaceBody(newSetter.body) + setter.replaceContractDescription(newSetter.contractDescription) + } + + if (firProperty.initializer is FirLazyExpression) { + firProperty.replaceInitializer(newProperty.initializer) + } + + val delegate = firProperty.delegate + if (delegate is FirWrappedDelegateExpression && delegate.expression is FirLazyExpression) { + val newDelegate = newProperty.delegate as FirWrappedDelegateExpression + delegate.replaceExpression(newDelegate.expression) } } @@ -121,4 +122,4 @@ private object FirLazyBodiesCalculatorTransformer : FirTransformer() { } return super.transformProperty(property, data) } -} \ No newline at end of file +}