Local delegated properties moved to language feature option

This commit is contained in:
Mikhael Bogdanov
2016-05-30 12:39:19 +03:00
parent 2bd807bb4e
commit bdc0b6b308
8 changed files with 99 additions and 8 deletions
@@ -0,0 +1,14 @@
// !LANGUAGE: -LocalDelegatedProperties
import kotlin.reflect.KProperty
class Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
fun foo(): Int {
val prop: Int <!LOCAL_VARIABLE_WITH_DELEGATE!>by Delegate()<!>
val prop2: Int <!LOCAL_VARIABLE_WITH_DELEGATE!>by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>123<!><!>
return prop + prop2
}
@@ -0,0 +1,11 @@
package
public fun foo(): kotlin.Int
public final class Delegate {
public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,23 @@
// !LANGUAGE: -LocalDelegatedProperties
// FILE: script.kts
import kotlin.reflect.KProperty
class Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
fun foo(): Int {
val prop: Int <!LOCAL_VARIABLE_WITH_DELEGATE!>by Delegate()<!>
val prop2: Int <!LOCAL_VARIABLE_WITH_DELEGATE!>by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>123<!><!>
return prop + prop2
}
val prop: Int by Delegate()
val prop2: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>123<!>
prop + prop2
@@ -0,0 +1,20 @@
package
public final class Script {
public constructor Script(/*0*/ args: kotlin.Array<kotlin.String>)
public final val args: kotlin.Array<kotlin.String>
public final val prop: kotlin.Int
public final val prop2: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class Delegate {
public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}