K1: introduce BUILDER_INFERENCE_STUB_PARAMETER_TYPE to prevent compiler crashes
This diagnostic is reported in rare situations when StubTypeForBuilderInference is kept as a parameter type of for loop or lambda. Before this commit, we had in K1 "Could not load module <error module>" from IrLinker instead. Related to: KT-52757, KT-53109, KT-63841, KT-64066 #KT-53478 Fixed
This commit is contained in:
committed by
Space Team
parent
6f6e37f552
commit
678816f9e8
@@ -0,0 +1,28 @@
|
||||
// ISSUE: KT-52757
|
||||
// CHECK_TYPE_WITH_EXACT
|
||||
|
||||
fun test() {
|
||||
val buildee = build {
|
||||
typeVariableConsumer = ::consumeTargetType
|
||||
typeVariableConsumer = {}
|
||||
}
|
||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||
// considered to be non-user-reproducible code for the purposes of these tests
|
||||
checkExactType<Buildee<TargetType>>(buildee)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
class TargetType
|
||||
|
||||
fun consumeTargetType(value: TargetType) {}
|
||||
|
||||
class Buildee<TV> {
|
||||
var typeVariableConsumer: (TV) -> Unit = { storage = it }
|
||||
private var storage: TV = null!!
|
||||
}
|
||||
|
||||
fun <PTV> build(instructions: Buildee<PTV>.() -> Unit): Buildee<PTV> {
|
||||
return Buildee<PTV>().apply(instructions)
|
||||
}
|
||||
Reference in New Issue
Block a user