diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt index d0bf5c9b42b..77ed0739b87 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt @@ -69,3 +69,24 @@ inline fun buildTypeParameter(init: FirTypeParameterBuilder.() -> Unit): FirType } return FirTypeParameterBuilder().apply(init).build() } + +@OptIn(ExperimentalContracts::class) +inline fun buildTypeParameterCopy(original: FirTypeParameter, init: FirTypeParameterBuilder.() -> Unit): FirTypeParameter { + contract { + callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE) + } + val copyBuilder = FirTypeParameterBuilder() + copyBuilder.source = original.source + copyBuilder.moduleData = original.moduleData + copyBuilder.resolvePhase = original.resolvePhase + copyBuilder.origin = original.origin + copyBuilder.attributes = original.attributes.copy() + copyBuilder.name = original.name + copyBuilder.symbol = original.symbol + copyBuilder.containingDeclarationSymbol = original.containingDeclarationSymbol + copyBuilder.variance = original.variance + copyBuilder.isReified = original.isReified + copyBuilder.bounds.addAll(original.bounds) + copyBuilder.annotations.addAll(original.annotations) + return copyBuilder.apply(init).build() +} diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt index 74ab4956751..f65b89e27dc 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt @@ -91,6 +91,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree withCopy() } + builder(typeParameter) { + withCopy() + } + builder(field) { parents += declarationBuilder default("resolvePhase", "FirResolvePhase.DECLARATIONS")