import kotlin.reflect.KProperty class Outer { fun foo() { class Local { fun bar() { val x = y } } } val y = "" } fun f() { val a = 1 fun g(): Int { return a } } fun foo(v: Int) { val d: Int by Delegate val a: Int val b = 1 val c = 2 @Anno val e: Int foo(c) } object Delegate { operator fun getValue(instance: Any?, property: KProperty<*>) = 1 operator fun setValue(instance: Any?, property: KProperty<*>, value: String) {} } @Target(AnnotationTarget.LOCAL_VARIABLE) annotation class Anno