// ISSUE: KT-63840 // CHECK_TYPE_WITH_EXACT // WITH_STDLIB fun test() { val buildee = build { select( replaceTypeVariable(TargetType()), DifferentType() ) } // 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) } fun select(vararg values: T): T = values.first() class TargetType class DifferentType class Buildee { fun replaceTypeVariable(value: TV): TV { val temp = storage; storage = value; return temp } private var storage: TV = null!! } fun build(instructions: Buildee.() -> Unit): Buildee { return Buildee().apply(instructions) }