FIR IDE: remove copy-pasted code from DeclarationCopyBuilder

This commit is contained in:
Ilya Kirillov
2021-04-19 21:14:36 +02:00
committed by TeamCityServer
parent a76c5d66eb
commit 47e8b2f9dc
@@ -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 <reified T : FirDeclaration> createCopy(
fakeKtDeclaration: KtDeclaration,
originalFirDeclaration: T,