FIR IDE: Add building completion context for properties
This commit is contained in:
+28
@@ -90,3 +90,31 @@ inline fun buildProperty(init: FirPropertyBuilder.() -> Unit): FirProperty {
|
||||
}
|
||||
return FirPropertyBuilder().apply(init).build()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.() -> Unit): FirProperty {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
val copyBuilder = FirPropertyBuilder()
|
||||
copyBuilder.source = original.source
|
||||
copyBuilder.session = original.session
|
||||
copyBuilder.resolvePhase = original.resolvePhase
|
||||
copyBuilder.origin = original.origin
|
||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
||||
copyBuilder.name = original.name
|
||||
copyBuilder.initializer = original.initializer
|
||||
copyBuilder.delegate = original.delegate
|
||||
copyBuilder.delegateFieldSymbol = original.delegateFieldSymbol
|
||||
copyBuilder.isVar = original.isVar
|
||||
copyBuilder.getter = original.getter
|
||||
copyBuilder.setter = original.setter
|
||||
copyBuilder.annotations.addAll(original.annotations)
|
||||
copyBuilder.typeParameters.addAll(original.typeParameters)
|
||||
copyBuilder.containerSource = original.containerSource
|
||||
copyBuilder.symbol = original.symbol
|
||||
copyBuilder.isLocal = original.isLocal
|
||||
copyBuilder.status = original.status
|
||||
return copyBuilder.apply(init).build()
|
||||
}
|
||||
|
||||
+1
@@ -172,6 +172,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
parents += typeParametersOwnerBuilder
|
||||
defaultNull("getter", "setter", "containerSource", "delegateFieldSymbol")
|
||||
default("resolvePhase", "FirResolvePhase.RAW_FIR")
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(typeOperatorCall) {
|
||||
|
||||
Reference in New Issue
Block a user