Rename toDelegateFor to provideDelegate.

This commit is contained in:
Stanislav Erokhin
2016-12-12 14:56:16 +03:00
parent db5250a614
commit 9dc9fb578f
71 changed files with 278 additions and 276 deletions
@@ -5,7 +5,7 @@ object CommonCase {
fun <D, E, R> delegate() : Fas<D, E, R> = TODO()
operator fun <D, E, R> Fas<D, E, R>.toDelegateFor(host: D, p: Any?): Fas<D, E, R> = TODO()
operator fun <D, E, R> Fas<D, E, R>.provideDelegate(host: D, p: Any?): Fas<D, E, R> = TODO()
operator fun <D, E, R> Fas<D, E, R>.getValue(receiver: E, p: Any?): R = TODO()
val Long.test1: String by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>delegate<!>() // common test, not working because of Inference1
@@ -9,7 +9,7 @@ public object CommonCase {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun </*0*/ D, /*1*/ E, /*2*/ R> CommonCase.Fas<D, E, R>.getValue(/*0*/ receiver: E, /*1*/ p: kotlin.Any?): R
public final operator fun </*0*/ D, /*1*/ E, /*2*/ R> CommonCase.Fas<D, E, R>.toDelegateFor(/*0*/ host: D, /*1*/ p: kotlin.Any?): CommonCase.Fas<D, E, R>
public final operator fun </*0*/ D, /*1*/ E, /*2*/ R> CommonCase.Fas<D, E, R>.provideDelegate(/*0*/ host: D, /*1*/ p: kotlin.Any?): CommonCase.Fas<D, E, R>
public interface Fas</*0*/ D, /*1*/ E, /*2*/ R> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -4,7 +4,7 @@ class Cell<out V>(val value: V)
class GenericDelegate<V>(val value: V)
operator fun <T> T.toDelegateFor(a: Any?, p: Any?) = GenericDelegate(this)
operator fun <T> T.provideDelegate(a: Any?, p: Any?) = GenericDelegate(this)
operator fun <W> GenericDelegate<W>.getValue(a: Any?, p: Any?) = Cell(value)
@@ -4,7 +4,7 @@ public val test1: Cell<kotlin.String>
public val test2: Cell<kotlin.Any>
public val test3: Cell<kotlin.String>
public operator fun </*0*/ W> GenericDelegate<W>.getValue(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.Any?): Cell<W>
public operator fun </*0*/ T> T.toDelegateFor(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.Any?): GenericDelegate<T>
public operator fun </*0*/ T> T.provideDelegate(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.Any?): GenericDelegate<T>
public final class Cell</*0*/ out V> {
public constructor Cell</*0*/ out V>(/*0*/ value: V)
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
object T1 {
operator fun Int.toDelegateFor(host: T1, p: Any): Long = 2
operator fun Int.provideDelegate(host: T1, p: Any): Long = 2
operator fun Long.getValue(receiver: String, p: Any): Double = 1.0
val String.test1 by 1
@@ -8,5 +8,5 @@ public object T1 {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun kotlin.Long.getValue(/*0*/ receiver: kotlin.String, /*1*/ p: kotlin.Any): kotlin.Double
public final operator fun kotlin.Int.toDelegateFor(/*0*/ host: T1, /*1*/ p: kotlin.Any): kotlin.Long
public final operator fun kotlin.Int.provideDelegate(/*0*/ host: T1, /*1*/ p: kotlin.Any): kotlin.Long
}
@@ -5,7 +5,7 @@ object T2 {
fun <T> delegate(): Foo<T> = TODO()
operator fun <T> Foo<T>.toDelegateFor(host: T2, p: Any?): Foo<T> = TODO()
operator fun <T> Foo<T>.provideDelegate(host: T2, p: Any?): Foo<T> = TODO()
operator fun <T> Foo<T>.getValue(receiver: String, p: Any?): T = TODO()
val String.test1: String by delegate()
@@ -9,7 +9,7 @@ public object T2 {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun </*0*/ T> T2.Foo<T>.getValue(/*0*/ receiver: kotlin.String, /*1*/ p: kotlin.Any?): T
public final operator fun </*0*/ T> T2.Foo<T>.toDelegateFor(/*0*/ host: T2, /*1*/ p: kotlin.Any?): T2.Foo<T>
public final operator fun </*0*/ T> T2.Foo<T>.provideDelegate(/*0*/ host: T2, /*1*/ p: kotlin.Any?): T2.Foo<T>
public interface Foo</*0*/ T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -5,7 +5,7 @@ object T3 {
fun <T> delegate(): Foo<T> = TODO()
operator fun <T> Foo<T>.toDelegateFor(host: T3, p: Any?): Foo<T> = TODO()
operator fun <T> Foo<T>.provideDelegate(host: T3, p: Any?): Foo<T> = TODO()
operator fun <T> Foo<T>.getValue(receiver: T3, p: Any?): T = TODO()
val test1: String by delegate()
@@ -8,7 +8,7 @@ public object T3 {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun </*0*/ T> T3.Foo<T>.getValue(/*0*/ receiver: T3, /*1*/ p: kotlin.Any?): T
public final operator fun </*0*/ T> T3.Foo<T>.toDelegateFor(/*0*/ host: T3, /*1*/ p: kotlin.Any?): T3.Foo<T>
public final operator fun </*0*/ T> T3.Foo<T>.provideDelegate(/*0*/ host: T3, /*1*/ p: kotlin.Any?): T3.Foo<T>
public interface Foo</*0*/ T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -5,7 +5,7 @@ object Inference2 {
fun <T> delegate(): Foo<T> = TODO()
operator fun <T> Foo<T>.toDelegateFor(host: T, p: Any?): Foo<T> = TODO()
operator fun <T> Foo<T>.provideDelegate(host: T, p: Any?): Foo<T> = TODO()
operator fun <T> Foo<T>.getValue(receiver: Inference2, p: Any?): String = TODO()
val test1: String by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>delegate<!>() // same story like in Inference1
@@ -9,7 +9,7 @@ public object Inference2 {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun </*0*/ T> Inference2.Foo<T>.getValue(/*0*/ receiver: Inference2, /*1*/ p: kotlin.Any?): kotlin.String
public final operator fun </*0*/ T> Inference2.Foo<T>.toDelegateFor(/*0*/ host: T, /*1*/ p: kotlin.Any?): Inference2.Foo<T>
public final operator fun </*0*/ T> Inference2.Foo<T>.provideDelegate(/*0*/ host: T, /*1*/ p: kotlin.Any?): Inference2.Foo<T>
public interface Foo</*0*/ T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -2,7 +2,7 @@
import kotlin.reflect.KProperty
operator fun String.toDelegateFor(a: Any?, p: KProperty<*>) = this
operator fun String.provideDelegate(a: Any?, p: KProperty<*>) = this
operator fun String.getValue(a: Any?, p: KProperty<*>) = this
fun test(): String {
@@ -2,4 +2,4 @@ package
public fun test(): kotlin.String
public operator fun kotlin.String.getValue(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
public operator fun kotlin.String.toDelegateFor(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
public operator fun kotlin.String.provideDelegate(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
@@ -7,7 +7,7 @@ class StringDelegate(val s: String) {
}
// NB no operator
fun String.toDelegateFor(a: Any?, p: KProperty<*>) = StringDelegate(this)
fun String.provideDelegate(a: Any?, p: KProperty<*>) = StringDelegate(this)
operator fun String.getValue(a: Any?, p: KProperty<*>) = this
@@ -4,7 +4,7 @@ public val test1: kotlin.String
public val test2: kotlin.Int
public val test3: kotlin.String
public operator fun kotlin.String.getValue(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
public fun kotlin.String.toDelegateFor(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): StringDelegate
public fun kotlin.String.provideDelegate(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): StringDelegate
public final class StringDelegate {
public constructor StringDelegate(/*0*/ s: kotlin.String)
@@ -0,0 +1,32 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun provideDelegate(x: Any?, p: KProperty<*>) {}
operator fun Any.provideDelegate(x: Any?, p: KProperty<*>) {}
operator fun Any.provideDelegate(x: Any?, p: Any) {}
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun Any.provideDelegate(x: Any?, p: Int) {}
class Host1 {
operator fun provideDelegate(x: Any?, p: KProperty<*>) {}
}
class Host2 {
operator fun Any.provideDelegate(x: Any?, p: KProperty<*>) {}
}
class Host3 {
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun provideDelegate(x: Any?, p: KProperty<*>, foo: Int) {}
}
class Host4 {
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun provideDelegate(x: Any?, p: KProperty<*>, foo: Int = 0) {}
}
class Host5 {
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun provideDelegate(x: Any?, p: KProperty<*>, vararg foo: Int) {}
}
@@ -1,15 +1,15 @@
package
public operator fun toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public operator fun kotlin.Any.toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.Any): kotlin.Unit
public operator fun kotlin.Any.toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.Int): kotlin.Unit
public operator fun kotlin.Any.toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public operator fun provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public operator fun kotlin.Any.provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.Any): kotlin.Unit
public operator fun kotlin.Any.provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.Int): kotlin.Unit
public operator fun kotlin.Any.provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public final class Host1 {
public constructor Host1()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public final operator fun provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -18,14 +18,14 @@ public final class Host2 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun kotlin.Any.toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public final operator fun kotlin.Any.provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
}
public final class Host3 {
public constructor Host3()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ foo: kotlin.Int): kotlin.Unit
public final operator fun provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ foo: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -33,7 +33,7 @@ public final class Host4 {
public constructor Host4()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ foo: kotlin.Int = ...): kotlin.Unit
public final operator fun provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ foo: kotlin.Int = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -41,6 +41,6 @@ public final class Host5 {
public constructor Host5()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun toDelegateFor(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ vararg foo: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public final operator fun provideDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ vararg foo: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -5,12 +5,12 @@ class Delegate<T>
operator fun Delegate<*>.getValue(receiver: Any?, p: Any): String = ""
operator fun <T> Delegate<T>.setValue(receiver: Any?, p: Any, value: T) {}
operator fun <T> String.toDelegateFor(receiver: Any?, p: Any) = Delegate<T>()
operator fun <T> String.provideDelegate(receiver: Any?, p: Any) = Delegate<T>()
var test1: String by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>Delegate<!>()
var test2: String by Delegate<String>()
var test3: String by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE, DELEGATE_SPECIAL_FUNCTION_MISSING, DELEGATE_SPECIAL_FUNCTION_MISSING!>"OK"<!>
var test4: String by "OK".<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>toDelegateFor<!>(null, "")
var test5: String by "OK".toDelegateFor<String>(null, "")
var test4: String by "OK".<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>provideDelegate<!>(null, "")
var test5: String by "OK".provideDelegate<String>(null, "")
@@ -6,8 +6,8 @@ public var test3: kotlin.String
public var test4: kotlin.String
public var test5: kotlin.String
public operator fun Delegate<*>.getValue(/*0*/ receiver: kotlin.Any?, /*1*/ p: kotlin.Any): kotlin.String
public operator fun </*0*/ T> kotlin.String.provideDelegate(/*0*/ receiver: kotlin.Any?, /*1*/ p: kotlin.Any): Delegate<T>
public operator fun </*0*/ T> Delegate<T>.setValue(/*0*/ receiver: kotlin.Any?, /*1*/ p: kotlin.Any, /*2*/ value: T): kotlin.Unit
public operator fun </*0*/ T> kotlin.String.toDelegateFor(/*0*/ receiver: kotlin.Any?, /*1*/ p: kotlin.Any): Delegate<T>
public final class Delegate</*0*/ T> {
public constructor Delegate</*0*/ T>()
@@ -2,7 +2,7 @@
import kotlin.reflect.KProperty
operator fun String.toDelegateFor(a: Any?, p: KProperty<*>) = this
operator fun String.provideDelegate(a: Any?, p: KProperty<*>) = this
operator fun String.getValue(a: Any?, p: KProperty<*>) = this
val test1: String by "OK"
@@ -3,4 +3,4 @@ package
public val test1: kotlin.String
public val test2: kotlin.String
public operator fun kotlin.String.getValue(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
public operator fun kotlin.String.toDelegateFor(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
public operator fun kotlin.String.provideDelegate(/*0*/ a: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
@@ -1,11 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: -OperatorToDelegateFor
// !LANGUAGE: -OperatorProvideDelegate
class WrongDelegate(val x: Int) {
operator fun getValue(thisRef: Any?, prop: Any): Int = x
}
<!UNSUPPORTED_FEATURE!>operator<!> fun String.toDelegateFor(thisRef: Any?, prop: Any) = WrongDelegate(this.length)
<!UNSUPPORTED_FEATURE!>operator<!> fun String.provideDelegate(thisRef: Any?, prop: Any) = WrongDelegate(this.length)
operator fun String.getValue(thisRef: Any?, prop: Any) = this
@@ -4,7 +4,7 @@ public val test1: kotlin.String
public val test2: kotlin.Int
public val test3: kotlin.String
public operator fun kotlin.String.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any): kotlin.String
public operator fun kotlin.String.toDelegateFor(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any): WrongDelegate
public operator fun kotlin.String.provideDelegate(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any): WrongDelegate
public final class WrongDelegate {
public constructor WrongDelegate(/*0*/ x: kotlin.Int)
@@ -1,32 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun toDelegateFor(x: Any?, p: KProperty<*>) {}
operator fun Any.toDelegateFor(x: Any?, p: KProperty<*>) {}
operator fun Any.toDelegateFor(x: Any?, p: Any) {}
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun Any.toDelegateFor(x: Any?, p: Int) {}
class Host1 {
operator fun toDelegateFor(x: Any?, p: KProperty<*>) {}
}
class Host2 {
operator fun Any.toDelegateFor(x: Any?, p: KProperty<*>) {}
}
class Host3 {
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun toDelegateFor(x: Any?, p: KProperty<*>, foo: Int) {}
}
class Host4 {
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun toDelegateFor(x: Any?, p: KProperty<*>, foo: Int = 0) {}
}
class Host5 {
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun toDelegateFor(x: Any?, p: KProperty<*>, vararg foo: Int) {}
}