[FIR] Drop redundant FirIntegerOperatorCall and number of fir copy methods

This commit is contained in:
Dmitriy Novozhilov
2022-01-28 14:23:32 +03:00
committed by teamcity
parent 27901a55c4
commit 84913772ec
8 changed files with 66 additions and 280 deletions
@@ -112,3 +112,33 @@ inline fun buildAnonymousFunction(init: FirAnonymousFunctionBuilder.() -> Unit):
}
return FirAnonymousFunctionBuilder().apply(init).build()
}
@OptIn(ExperimentalContracts::class)
inline fun buildAnonymousFunctionCopy(original: FirAnonymousFunction, init: FirAnonymousFunctionBuilder.() -> Unit): FirAnonymousFunction {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
val copyBuilder = FirAnonymousFunctionBuilder()
copyBuilder.source = original.source
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.moduleData = original.moduleData
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.controlFlowGraphReference = original.controlFlowGraphReference
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body
copyBuilder.symbol = original.symbol
copyBuilder.label = original.label
copyBuilder.invocationKind = original.invocationKind
copyBuilder.inlineStatus = original.inlineStatus
copyBuilder.isLambda = original.isLambda
copyBuilder.hasExplicitParameterList = original.hasExplicitParameterList
copyBuilder.typeParameters.addAll(original.typeParameters)
copyBuilder.typeRef = original.typeRef
return copyBuilder.apply(init).build()
}
@@ -233,6 +233,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
parents += functionBuilder
defaultNull("invocationKind", "label", "body", "controlFlowGraphReference")
default("inlineStatus", "InlineStatus.Unknown")
withCopy()
}
builder(propertyAccessor) {