[FIR] Generate copy builder for FirTypeParameter
This commit is contained in:
committed by
teamcity
parent
430ea414a9
commit
ae0bc1c078
+21
@@ -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()
|
||||
}
|
||||
|
||||
+4
@@ -91,6 +91,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(typeParameter) {
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(field) {
|
||||
parents += declarationBuilder
|
||||
default("resolvePhase", "FirResolvePhase.DECLARATIONS")
|
||||
|
||||
Reference in New Issue
Block a user