FIR IDE: Add building completion context for properties

This commit is contained in:
Roman Golyshev
2020-09-07 17:52:12 +03:00
parent 58965d1e71
commit 6fd871d0ba
7 changed files with 118 additions and 25 deletions
@@ -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()
}
@@ -172,6 +172,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
parents += typeParametersOwnerBuilder
defaultNull("getter", "setter", "containerSource", "delegateFieldSymbol")
default("resolvePhase", "FirResolvePhase.RAW_FIR")
withCopy()
}
builder(typeOperatorCall) {