// WITH_STDLIB // WITH_REFLECT import kotlin.experimental.ExperimentalTypeInference import kotlin.reflect.KProperty fun box(): String { definition { conversion { val offset by argument { // UnsupportedOperationException: no descriptor for type constructor of IntegerLiteralType[Int,Long,Byte,Short] defaultInt(0) } } } return "OK" } interface Transaction fun definition(configure: DefinitionBuilder.() -> Unit): Unit {} class ArgumentBuilder { fun defaultInt(default: Int): Unit {} } class ConversionBuilder { fun argument( configure: ArgumentBuilder.() -> Unit ): ArgumentDefinition = null as ArgumentDefinition } class DefinitionBuilder { @OptIn(ExperimentalTypeInference::class) fun conversion(configure: ConversionBuilder.() -> Unit): Unit {} } interface ArgumentDefinition { operator fun provideDelegate(thisRef: Any?, property: KProperty<*>): ArgumentReference } interface ArgumentReference { operator fun getValue(thisRef: Any?, property: KProperty<*>): Value }