import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty fun resolveMe() { receive(valueWithExplicitType) receive(valueWithImplicitType) variableWithExplicitType = 10 variableWithImplicitType = 10 } fun receive(value: Int){} val delegate = object: ReadWriteProperty { override fun getValue(thisRef: Any?, property: KProperty<*>): Int = 1 override fun setValue(thisRef: Any?, property: KProperty<*>, value: Int) {} } val valueWithExplicitType: Int by delegate val valueWithImplicitType by delegate var variableWithExplicitType: Int by delegate var variableWithImplicitType by delegate