FIR2IR: Fix substitution work for context receivers
This commit is contained in:
+13
@@ -44,3 +44,16 @@ inline fun buildContextReceiver(init: FirContextReceiverBuilder.() -> Unit): Fir
|
||||
}
|
||||
return FirContextReceiverBuilder().apply(init).build()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildContextReceiverCopy(original: FirContextReceiver, init: FirContextReceiverBuilder.() -> Unit): FirContextReceiver {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
val copyBuilder = FirContextReceiverBuilder()
|
||||
copyBuilder.source = original.source
|
||||
copyBuilder.typeRef = original.typeRef
|
||||
copyBuilder.customLabelName = original.customLabelName
|
||||
copyBuilder.labelNameFromTypeRef = original.labelNameFromTypeRef
|
||||
return copyBuilder.apply(init).build()
|
||||
}
|
||||
|
||||
+4
@@ -280,6 +280,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
parents += loopJumpBuilder
|
||||
}
|
||||
|
||||
builder(contextReceiver) {
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(valueParameter, type = "FirValueParameterImpl") {
|
||||
openBuilder()
|
||||
withCopy()
|
||||
|
||||
Reference in New Issue
Block a user