FIR IDE: remove copy-pasted code from DeclarationCopyBuilder
This commit is contained in:
committed by
TeamCityServer
parent
a76c5d66eb
commit
47e8b2f9dc
+16
-15
@@ -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.FirElement
|
||||||
import org.jetbrains.kotlin.fir.builder.RawFirFragmentForLazyBodiesBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirFragmentForLazyBodiesBuilder
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
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.declarations.builder.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirReturnExpression
|
import org.jetbrains.kotlin.fir.expressions.FirReturnExpression
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||||
@@ -58,9 +59,7 @@ object DeclarationCopyBuilder {
|
|||||||
return buildSimpleFunctionCopy(originalFunction) {
|
return buildSimpleFunctionCopy(originalFunction) {
|
||||||
body = builtFunction.body
|
body = builtFunction.body
|
||||||
symbol = builtFunction.symbol
|
symbol = builtFunction.symbol
|
||||||
resolvePhase = minOf(originalFunction.resolvePhase, FirResolvePhase.DECLARATIONS)
|
initDeclaration(originalFunction, builtFunction, state)
|
||||||
source = builtFunction.source
|
|
||||||
session = state.rootModuleSession
|
|
||||||
}.apply { reassignAllReturnTargets(builtFunction) }
|
}.apply { reassignAllReturnTargets(builtFunction) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,9 +74,7 @@ object DeclarationCopyBuilder {
|
|||||||
declarations.clear()
|
declarations.clear()
|
||||||
declarations.addAll(builtClass.declarations)
|
declarations.addAll(builtClass.declarations)
|
||||||
symbol = builtClass.symbol
|
symbol = builtClass.symbol
|
||||||
resolvePhase = minOf(originalFirClass.resolvePhase, FirResolvePhase.DECLARATIONS)
|
initDeclaration(originalFirClass, builtClass, state)
|
||||||
source = builtClass.source
|
|
||||||
session = state.rootModuleSession
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,9 +88,7 @@ object DeclarationCopyBuilder {
|
|||||||
return buildTypeAliasCopy(originalFirTypeAlias) {
|
return buildTypeAliasCopy(originalFirTypeAlias) {
|
||||||
expandedTypeRef = builtTypeAlias.expandedTypeRef
|
expandedTypeRef = builtTypeAlias.expandedTypeRef
|
||||||
symbol = builtTypeAlias.symbol
|
symbol = builtTypeAlias.symbol
|
||||||
resolvePhase = minOf(originalFirTypeAlias.resolvePhase, FirResolvePhase.DECLARATIONS)
|
initDeclaration(originalFirTypeAlias, builtTypeAlias, state)
|
||||||
source = builtTypeAlias.source
|
|
||||||
session = state.rootModuleSession
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,9 +107,7 @@ object DeclarationCopyBuilder {
|
|||||||
buildPropertyAccessorCopy(originalSetter) {
|
buildPropertyAccessorCopy(originalSetter) {
|
||||||
body = builtSetter.body
|
body = builtSetter.body
|
||||||
symbol = builtSetter.symbol
|
symbol = builtSetter.symbol
|
||||||
resolvePhase = minOf(builtSetter.resolvePhase, FirResolvePhase.DECLARATIONS)
|
initDeclaration(originalSetter, builtSetter, state)
|
||||||
source = builtSetter.source
|
|
||||||
session = state.rootModuleSession
|
|
||||||
}.apply { reassignAllReturnTargets(builtSetter) }
|
}.apply { reassignAllReturnTargets(builtSetter) }
|
||||||
} else {
|
} else {
|
||||||
builtSetter
|
builtSetter
|
||||||
@@ -127,12 +120,20 @@ object DeclarationCopyBuilder {
|
|||||||
getter = builtProperty.getter
|
getter = builtProperty.getter
|
||||||
setter = copySetter
|
setter = copySetter
|
||||||
|
|
||||||
resolvePhase = minOf(originalProperty.resolvePhase, FirResolvePhase.DECLARATIONS)
|
initDeclaration(originalProperty, builtProperty, state)
|
||||||
source = builtProperty.source
|
|
||||||
session = state.rootModuleSession
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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(
|
internal inline fun <reified T : FirDeclaration> createCopy(
|
||||||
fakeKtDeclaration: KtDeclaration,
|
fakeKtDeclaration: KtDeclaration,
|
||||||
originalFirDeclaration: T,
|
originalFirDeclaration: T,
|
||||||
|
|||||||
Reference in New Issue
Block a user