From 47e8b2f9dc92d9c0b4cdb70ee7236f2c6192f31b Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 19 Apr 2021 21:14:36 +0200 Subject: [PATCH] FIR IDE: remove copy-pasted code from DeclarationCopyBuilder --- .../level/api/api/DeclarationCopyBuilder.kt | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt index 9bc7e4664f3..f9d2e0da4af 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.api import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.builder.RawFirFragmentForLazyBodiesBuilder import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.builder.* import org.jetbrains.kotlin.fir.expressions.FirReturnExpression import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid @@ -58,9 +59,7 @@ object DeclarationCopyBuilder { return buildSimpleFunctionCopy(originalFunction) { body = builtFunction.body symbol = builtFunction.symbol - resolvePhase = minOf(originalFunction.resolvePhase, FirResolvePhase.DECLARATIONS) - source = builtFunction.source - session = state.rootModuleSession + initDeclaration(originalFunction, builtFunction, state) }.apply { reassignAllReturnTargets(builtFunction) } } @@ -75,9 +74,7 @@ object DeclarationCopyBuilder { declarations.clear() declarations.addAll(builtClass.declarations) symbol = builtClass.symbol - resolvePhase = minOf(originalFirClass.resolvePhase, FirResolvePhase.DECLARATIONS) - source = builtClass.source - session = state.rootModuleSession + initDeclaration(originalFirClass, builtClass, state) } } @@ -91,9 +88,7 @@ object DeclarationCopyBuilder { return buildTypeAliasCopy(originalFirTypeAlias) { expandedTypeRef = builtTypeAlias.expandedTypeRef symbol = builtTypeAlias.symbol - resolvePhase = minOf(originalFirTypeAlias.resolvePhase, FirResolvePhase.DECLARATIONS) - source = builtTypeAlias.source - session = state.rootModuleSession + initDeclaration(originalFirTypeAlias, builtTypeAlias, state) } } @@ -112,9 +107,7 @@ object DeclarationCopyBuilder { buildPropertyAccessorCopy(originalSetter) { body = builtSetter.body symbol = builtSetter.symbol - resolvePhase = minOf(builtSetter.resolvePhase, FirResolvePhase.DECLARATIONS) - source = builtSetter.source - session = state.rootModuleSession + initDeclaration(originalSetter, builtSetter, state) }.apply { reassignAllReturnTargets(builtSetter) } } else { builtSetter @@ -127,12 +120,20 @@ object DeclarationCopyBuilder { getter = builtProperty.getter setter = copySetter - resolvePhase = minOf(originalProperty.resolvePhase, FirResolvePhase.DECLARATIONS) - source = builtProperty.source - session = state.rootModuleSession + initDeclaration(originalProperty, builtProperty, state) } } + private fun FirDeclarationBuilder.initDeclaration( + originalDeclaration: FirDeclaration, + builtDeclaration: FirDeclaration, + state: FirModuleResolveState + ) { + resolvePhase = minOf(originalDeclaration.resolvePhase, FirResolvePhase.DECLARATIONS) + source = builtDeclaration.source + session = state.rootModuleSession + } + internal inline fun createCopy( fakeKtDeclaration: KtDeclaration, originalFirDeclaration: T,