Deprecate PropertyMetadata, use KProperty<*> for delegated properties instead

This commit is contained in:
Alexander Udalov
2015-10-12 21:42:18 +03:00
parent 3c74f48f91
commit ec1b4776fe
145 changed files with 536 additions and 379 deletions
@@ -127,15 +127,8 @@ public class DelegatedPropertyResolver {
} }
@NotNull @NotNull
private JetExpression createExpressionForPropertyMetadata( private static JetExpression createExpressionForProperty(@NotNull JetPsiFactory psiFactory) {
@NotNull JetPsiFactory psiFactory, return psiFactory.createExpression("null as kotlin.reflect.KProperty<*>");
@NotNull PropertyDescriptor propertyDescriptor
) {
return psiFactory.createExpression(builtIns.getPropertyMetadataImpl().getName().asString() +
"(\"" +
propertyDescriptor.getName().asString() +
"\") as " +
builtIns.getPropertyMetadata().getName().asString());
} }
public void resolveDelegatedPropertyPDMethod( public void resolveDelegatedPropertyPDMethod(
@@ -151,7 +144,7 @@ public class DelegatedPropertyResolver {
DataFlowInfo.EMPTY, TypeUtils.NO_EXPECTED_TYPE); DataFlowInfo.EMPTY, TypeUtils.NO_EXPECTED_TYPE);
JetPsiFactory psiFactory = JetPsiFactory(delegateExpression); JetPsiFactory psiFactory = JetPsiFactory(delegateExpression);
List<JetExpression> arguments = Collections.singletonList(createExpressionForPropertyMetadata(psiFactory, propertyDescriptor)); List<JetExpression> arguments = Collections.singletonList(createExpressionForProperty(psiFactory));
ExpressionReceiver receiver = new ExpressionReceiver(delegateExpression, delegateType); ExpressionReceiver receiver = new ExpressionReceiver(delegateExpression, delegateType);
Pair<Call, OverloadResolutionResults<FunctionDescriptor>> resolutionResult = Pair<Call, OverloadResolutionResults<FunctionDescriptor>> resolutionResult =
@@ -257,7 +250,7 @@ public class DelegatedPropertyResolver {
List<JetExpression> arguments = Lists.newArrayList(); List<JetExpression> arguments = Lists.newArrayList();
JetPsiFactory psiFactory = JetPsiFactory(delegateExpression); JetPsiFactory psiFactory = JetPsiFactory(delegateExpression);
arguments.add(psiFactory.createExpression(hasThis ? "this" : "null")); arguments.add(psiFactory.createExpression(hasThis ? "this" : "null"));
arguments.add(createExpressionForPropertyMetadata(psiFactory, propertyDescriptor)); arguments.add(createExpressionForProperty(psiFactory));
if (!isGet) { if (!isGet) {
JetReferenceExpression fakeArgument = (JetReferenceExpression) createFakeExpressionOfType(delegateExpression.getProject(), trace, JetReferenceExpression fakeArgument = (JetReferenceExpression) createFakeExpressionOfType(delegateExpression.getProject(), trace,
+1 -9
View File
@@ -1080,19 +1080,11 @@ public interface Progression</*0*/ out N : kotlin.Any> : kotlin.Iterable<N> {
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.Iterator<N> public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.Iterator<N>
} }
public interface PropertyMetadata { @kotlin.Deprecated(message = "Please use KProperty instead.", replaceWith = kotlin.ReplaceWith(expression = "KProperty<*>", imports = {"kotlin.reflect.KProperty"})) public interface PropertyMetadata {
public abstract val name: kotlin.String public abstract val name: kotlin.String
public abstract fun <get-name>(): kotlin.String public abstract fun <get-name>(): kotlin.String
} }
@kotlin.data() public final class PropertyMetadataImpl : kotlin.PropertyMetadata {
/*primary*/ public constructor PropertyMetadataImpl(/*0*/ name: kotlin.String)
public open override /*1*/ val name: kotlin.String
public open override /*1*/ fun <get-name>(): kotlin.String
public final operator /*synthesized*/ fun component1(): kotlin.String
public final /*synthesized*/ fun copy(/*0*/ name: kotlin.String = ...): kotlin.PropertyMetadataImpl
}
public interface Range</*0*/ T : kotlin.Comparable<T>> { public interface Range</*0*/ T : kotlin.Comparable<T>> {
public abstract val end: T public abstract val end: T
public abstract fun <get-end>(): T public abstract fun <get-end>(): T
@@ -1,33 +1,35 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
class CustomDelegate { class CustomDelegate {
operator fun get(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun get(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun set(thisRef: Any?, prop: PropertyMetadata, value: String) {} operator fun set(thisRef: Any?, prop: KProperty<*>, value: String) {}
} }
class OkDelegate { class OkDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun setValue(thisRef: Any?, prop: PropertyMetadata, value: String) {} operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
} }
class CustomDelegate2 { class CustomDelegate2 {
operator fun get(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun get(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun set(thisRef: Any?, prop: PropertyMetadata, value: String) {} operator fun set(thisRef: Any?, prop: KProperty<*>, value: String) {}
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): Int = 5 operator fun getValue(thisRef: Any?, prop: KProperty<*>): Int = 5
operator fun setValue(thisRef: Any?, prop: PropertyMetadata, value: Int) {} operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: Int) {}
} }
class CustomDelegate3 { class CustomDelegate3 {
operator fun get(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun get(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun set(thisRef: Any?, prop: PropertyMetadata, value: String) {} operator fun set(thisRef: Any?, prop: KProperty<*>, value: String) {}
} }
operator fun OkDelegate.get(thisRef: Any?, prop: PropertyMetadata): Int = 4 operator fun OkDelegate.get(thisRef: Any?, prop: <!DEPRECATION!>PropertyMetadata<!>): Int = 4
operator fun OkDelegate.set(thisRef: Any?, prop: PropertyMetadata, value: Int) {} operator fun OkDelegate.set(thisRef: Any?, prop: <!DEPRECATION!>PropertyMetadata<!>, value: Int) {}
operator fun CustomDelegate3.getValue(thisRef: Any?, prop: PropertyMetadata): Int = 4 operator fun CustomDelegate3.getValue(thisRef: Any?, prop: <!DEPRECATION!>PropertyMetadata<!>): Int = 4
operator fun CustomDelegate3.setValue(thisRef: Any?, prop: PropertyMetadata, value: Int) {} operator fun CustomDelegate3.setValue(thisRef: Any?, prop: <!DEPRECATION!>PropertyMetadata<!>, value: Int) {}
class Example { class Example {
@@ -48,4 +50,4 @@ class Example {
fun requireString(s: String) {} fun requireString(s: String) {}
fun requireInt(n: Int) {} fun requireInt(n: Int) {}
} }
@@ -8,29 +8,29 @@ public operator fun CustomDelegate3.setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ p
public final class CustomDelegate { public final class CustomDelegate {
public constructor CustomDelegate() public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun get(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun get(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun set(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.String): kotlin.Unit public final operator fun set(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public final class CustomDelegate2 { public final class CustomDelegate2 {
public constructor CustomDelegate2() public constructor CustomDelegate2()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun get(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun get(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.Int public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun set(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.String): kotlin.Unit public final operator fun set(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.Int): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public final class CustomDelegate3 { public final class CustomDelegate3 {
public constructor CustomDelegate3() public constructor CustomDelegate3()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun get(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun get(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun set(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.String): kotlin.Unit public final operator fun set(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -52,8 +52,8 @@ public final class Example {
public final class OkDelegate { public final class OkDelegate {
public constructor OkDelegate() public constructor OkDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.String): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
+4 -2
View File
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class CustomDelegate { class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
} }
public abstract class A<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER_PRIMARY_CONSTRUCTOR_PARAMETER!>lateinit<!> var p2: String) { public abstract class A<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER_PRIMARY_CONSTRUCTOR_PARAMETER!>lateinit<!> var p2: String) {
@@ -62,4 +64,4 @@ public class B {
init { init {
a.length a.length
} }
} }
+1 -1
View File
@@ -56,7 +56,7 @@ public final class B {
public final class CustomDelegate { public final class CustomDelegate {
public constructor CustomDelegate() public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
+9 -7
View File
@@ -1,3 +1,5 @@
import kotlin.reflect.KProperty
interface Example { interface Example {
operator fun plus(o: Example): Example operator fun plus(o: Example): Example
operator fun div(o: Example): Example operator fun div(o: Example): Example
@@ -59,8 +61,8 @@ interface Example {
} }
class OkDelegates { class OkDelegates {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = "" operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = ""
operator fun setValue(thisRef: Any?, prop: PropertyMetadata, s: String): String = "" operator fun setValue(thisRef: Any?, prop: KProperty<*>, s: String): String = ""
operator fun setValue(thisRef: Any?, prop: Any, n: Int) {} operator fun setValue(thisRef: Any?, prop: Any, n: Int) {}
operator fun setValue(thisRef: Any?, prop: Any?, s: String) {} operator fun setValue(thisRef: Any?, prop: Any?, s: String) {}
} }
@@ -69,11 +71,11 @@ class DelegatesWithErrors {
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun getValue(thisRef: Any?, prop: String): String = "" <!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun getValue(thisRef: Any?, prop: String): String = ""
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(thisRef: Any?, prop: String, value: String) {} <!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(thisRef: Any?, prop: String, value: String) {}
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(thisRef: Any?, prop: PropertyMetadata, vararg n: Int) {} <!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(thisRef: Any?, prop: KProperty<*>, vararg n: Int) {}
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(thisRef: Any?, prop: PropertyMetadata, f: Float = 0.0f) {} <!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(thisRef: Any?, prop: KProperty<*>, f: Float = 0.0f) {}
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun getValue(prop: PropertyMetadata): String = "" <!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun getValue(prop: KProperty<*>): String = ""
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(prop: PropertyMetadata, value: String) {} <!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun setValue(prop: KProperty<*>, value: String) {}
} }
interface Example2 { interface Example2 {
@@ -208,4 +210,4 @@ infix fun Example.i1(<!UNUSED_PARAMETER!>n<!>: Int) {}
<!INAPPLICABLE_INFIX_MODIFIER!>infix<!> fun i1(<!UNUSED_PARAMETER!>n<!>: Int) {} <!INAPPLICABLE_INFIX_MODIFIER!>infix<!> fun i1(<!UNUSED_PARAMETER!>n<!>: Int) {}
<!INAPPLICABLE_INFIX_MODIFIER!>infix<!> fun i1(<!UNUSED_PARAMETER!>n<!>: Int, <!UNUSED_PARAMETER!>n2<!>: Int) {} <!INAPPLICABLE_INFIX_MODIFIER!>infix<!> fun i1(<!UNUSED_PARAMETER!>n<!>: Int, <!UNUSED_PARAMETER!>n2<!>: Int) {}
<!INAPPLICABLE_INFIX_MODIFIER!>infix<!> fun i1(vararg <!UNUSED_PARAMETER!>n<!>: Int) {} <!INAPPLICABLE_INFIX_MODIFIER!>infix<!> fun i1(vararg <!UNUSED_PARAMETER!>n<!>: Int) {}
+6 -6
View File
@@ -85,12 +85,12 @@ public final class DelegatesWithErrors {
public constructor DelegatesWithErrors() public constructor DelegatesWithErrors()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.String): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.String): kotlin.String
public final operator fun getValue(/*0*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ f: kotlin.Float = ...): kotlin.Unit
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ vararg n: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.String, /*2*/ value: kotlin.String): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.String, /*2*/ value: kotlin.String): kotlin.Unit
public final operator fun setValue(/*0*/ prop: kotlin.PropertyMetadata, /*1*/ value: kotlin.String): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ f: kotlin.Float = ...): kotlin.Unit
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ vararg n: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public final operator fun setValue(/*0*/ prop: kotlin.reflect.KProperty<*>, /*1*/ value: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -162,10 +162,10 @@ public interface Example3 {
public final class OkDelegates { public final class OkDelegates {
public constructor OkDelegates() public constructor OkDelegates()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any, /*2*/ n: kotlin.Int): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any, /*2*/ n: kotlin.Int): kotlin.Unit
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any?, /*2*/ s: kotlin.String): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any?, /*2*/ s: kotlin.String): kotlin.Unit
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ s: kotlin.String): kotlin.String public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ s: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
+5 -3
View File
@@ -1,3 +1,5 @@
import kotlin.reflect.KProperty
class C(a: Int, b: Int, c: Int, d: Int, <!UNUSED_PARAMETER!>e<!>: Int = d, val f: String) { class C(a: Int, b: Int, c: Int, d: Int, <!UNUSED_PARAMETER!>e<!>: Int = d, val f: String) {
init { init {
a + a a + a
@@ -14,11 +16,11 @@ fun f(a: Int, b: Int, <!UNUSED_PARAMETER!>c<!>: Int = b) {
a + a a + a
} }
fun Any.getValue(thisRef: Any?, prop: PropertyMetadata): String = ":)" fun Any.getValue(thisRef: Any?, prop: KProperty<*>): String = ":)"
fun Any.setValue(thisRef: Any?, prop: PropertyMetadata, value: String) { fun Any.setValue(thisRef: Any?, prop: KProperty<*>, value: String) {
} }
fun Any.propertyDelegated(prop: PropertyMetadata) { fun Any.propertyDelegated(prop: KProperty<*>) {
} }
fun get(<!UNUSED_PARAMETER!>p<!>: Any) { fun get(<!UNUSED_PARAMETER!>p<!>: Any) {
+3 -3
View File
@@ -4,9 +4,9 @@ public fun f(/*0*/ a: kotlin.Int, /*1*/ b: kotlin.Int, /*2*/ c: kotlin.Int = ...
public fun foo(/*0*/ s: kotlin.String): kotlin.Unit public fun foo(/*0*/ s: kotlin.String): kotlin.Unit
public fun get(/*0*/ p: kotlin.Any): kotlin.Unit public fun get(/*0*/ p: kotlin.Any): kotlin.Unit
public fun set(/*0*/ p: kotlin.Any): kotlin.Unit public fun set(/*0*/ p: kotlin.Any): kotlin.Unit
public fun kotlin.Any.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public fun kotlin.Any.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public fun kotlin.Any.propertyDelegated(/*0*/ prop: kotlin.PropertyMetadata): kotlin.Unit public fun kotlin.Any.propertyDelegated(/*0*/ prop: kotlin.reflect.KProperty<*>): kotlin.Unit
public fun kotlin.Any.setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.String): kotlin.Unit public fun kotlin.Any.setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public final class C { public final class C {
public constructor C(/*0*/ a: kotlin.Int, /*1*/ b: kotlin.Int, /*2*/ c: kotlin.Int, /*3*/ d: kotlin.Int, /*4*/ e: kotlin.Int = ..., /*5*/ f: kotlin.String) public constructor C(/*0*/ a: kotlin.Int, /*1*/ b: kotlin.Int, /*2*/ c: kotlin.Int, /*3*/ d: kotlin.Int, /*4*/ e: kotlin.Int = ..., /*5*/ f: kotlin.String)
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
annotation class Ann annotation class Ann
class CustomDelegate { class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
} }
<!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!> <!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@field:Ann<!>
@@ -31,4 +33,4 @@ class SomeClass {
} }
class WithPrimaryConstructor(@field:Ann val a: String) class WithPrimaryConstructor(@field:Ann val a: String)
@@ -10,7 +10,7 @@ package
public final class CustomDelegate { public final class CustomDelegate {
public constructor CustomDelegate() public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
annotation class Ann annotation class Ann
class CustomDelegate { class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
} }
<!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@get:Ann<!> <!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@get:Ann<!>
@@ -34,4 +36,4 @@ class SomeClass {
val <!UNUSED_VARIABLE!>localVariable<!> = 5 val <!UNUSED_VARIABLE!>localVariable<!> = 5
} }
} }
@@ -10,7 +10,7 @@ package
public final class CustomDelegate { public final class CustomDelegate {
public constructor CustomDelegate() public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,8 +1,10 @@
import kotlin.reflect.KProperty
annotation class Ann annotation class Ann
annotation class Second annotation class Second
class CustomDelegate { class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
} }
<!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@property:Ann<!> <!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@property:Ann<!>
@@ -34,4 +36,4 @@ class SomeClass {
val <!UNUSED_VARIABLE!>localVariable<!> = 5 val <!UNUSED_VARIABLE!>localVariable<!> = 5
} }
} }
@@ -10,7 +10,7 @@ package
public final class CustomDelegate { public final class CustomDelegate {
public constructor CustomDelegate() public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,8 +1,10 @@
import kotlin.reflect.KProperty
annotation class Ann annotation class Ann
class CustomDelegate { class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun setValue(thisRef: Any?, prop: PropertyMetadata, value: String) {} operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
} }
<!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@set:Ann<!> <!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@set:Ann<!>
@@ -33,4 +35,4 @@ class SomeClass {
val <!UNUSED_VARIABLE!>localVariable<!> = 5 val <!UNUSED_VARIABLE!>localVariable<!> = 5
} }
} }
@@ -10,9 +10,9 @@ package
public final class CustomDelegate { public final class CustomDelegate {
public constructor CustomDelegate() public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.String): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,8 +1,10 @@
import kotlin.reflect.KProperty
annotation class Ann annotation class Ann
class CustomDelegate { class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = prop.name operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun setValue(thisRef: Any?, prop: PropertyMetadata, value: String) {} operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
} }
<!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@setparam:Ann<!> <!INAPPLICABLE_TARGET_ON_PROPERTY, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@setparam:Ann<!>
@@ -34,4 +36,4 @@ class SomeClass {
val <!UNUSED_VARIABLE!>localVariable<!> = 5 val <!UNUSED_VARIABLE!>localVariable<!> = 5
} }
} }
@@ -10,9 +10,9 @@ package
public final class CustomDelegate { public final class CustomDelegate {
public constructor CustomDelegate() public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata, /*2*/ value: kotlin.String): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Del { class Del {
operator fun getValue(_this: Any?, p: PropertyMetadata): Int = 0 operator fun getValue(_this: Any?, p: KProperty<*>): Int = 0
} }
fun df(del: Del): Del = del fun df(del: Del): Del = del
@@ -13,4 +15,3 @@ fun test(del: Any?) {
val delegatedVal1: Int by df(<!DEBUG_INFO_SMARTCAST!>del<!>) val delegatedVal1: Int by df(<!DEBUG_INFO_SMARTCAST!>del<!>)
} }
} }
@@ -6,7 +6,7 @@ public fun test(/*0*/ del: kotlin.Any?): kotlin.Unit
public final class Del { public final class Del {
public constructor Del() public constructor Del()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ _this: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): kotlin.Int public final operator fun getValue(/*0*/ _this: 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,9 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by Delegate() val a: Int by Delegate()
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -5,7 +5,7 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,9 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a by Delegate() val a by Delegate()
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -5,7 +5,7 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,11 +1,13 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
abstract class A { abstract class A {
abstract val a: Int <!ABSTRACT_DELEGATED_PROPERTY!>by Delegate()<!> abstract val a: Int <!ABSTRACT_DELEGATED_PROPERTY!>by Delegate()<!>
} }
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -11,7 +11,7 @@ public abstract class A {
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
class B { class B {
val a: Int by Delegate() val a: Int by Delegate()
@@ -7,8 +9,7 @@ class B {
} }
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -12,7 +12,7 @@ public final class B {
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,10 +1,12 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by Delegate() val a: Int by Delegate()
get get
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -5,7 +5,7 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,12 +1,14 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
var a: Int by Delegate() var a: Int by Delegate()
private set private set
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
operator fun setValue(t: Any?, p: PropertyMetadata, i: Int) {} operator fun setValue(t: Any?, p: KProperty<*>, i: Int) {}
} }
@@ -5,8 +5,8 @@ public var a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ i: kotlin.Int): kotlin.Unit public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
interface A { interface A {
val prop: Int val prop: Int
} }
@@ -13,7 +15,7 @@ fun foo() {
} }
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -20,7 +20,7 @@ public final class AImpl : A {
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
interface A { interface A {
val prop: Int val prop: Int
} }
@@ -13,7 +15,7 @@ fun foo() {
} }
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): String { operator fun getValue(t: Any?, p: KProperty<*>): String {
return "" return ""
} }
} }
@@ -20,7 +20,7 @@ public final class AImpl : A {
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty0
val a: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>A()<!> val a: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>A()<!>
class A { class A {
fun getValue(t: Any?, p: PropertyMetadataImpl): Int = 1 fun getValue(t: Any?, p: KProperty0<*>): Int = 1
} }
@@ -5,7 +5,7 @@ public val a: kotlin.Int
public final class A { public final class A {
public constructor A() public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadataImpl): kotlin.Int public final fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty0<*>): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,10 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by A(1) val a: Int by A(1)
class A<T: Any>(i: T) { class A<T: Any>(i: T) {
operator fun getValue(t: Any?, p: PropertyMetadata): T { operator fun getValue(t: Any?, p: KProperty<*>): T {
throw Exception() throw Exception()
} }
} }
@@ -5,7 +5,7 @@ public val a: kotlin.Int
public final class A</*0*/ T : kotlin.Any> { public final class A</*0*/ T : kotlin.Any> {
public constructor A</*0*/ T : kotlin.Any>(/*0*/ i: T) public constructor A</*0*/ T : kotlin.Any>(/*0*/ i: T)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): T public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,14 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
open class Base open class Base
class Derived: Base() class Derived: Base()
val a: Base by A() val a: Base by A()
class A { class A {
operator fun getValue(t: Any?, p: PropertyMetadata): Derived { operator fun getValue(t: Any?, p: KProperty<*>): Derived {
return Derived() return Derived()
} }
} }
@@ -5,7 +5,7 @@ public val a: Base
public final class A { public final class A {
public constructor A() public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): Derived public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): Derived
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,11 +1,13 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
interface T { interface T {
val a: Int <!DELEGATED_PROPERTY_IN_INTERFACE!>by Delegate()<!> val a: Int <!DELEGATED_PROPERTY_IN_INTERFACE!>by Delegate()<!>
} }
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -3,7 +3,7 @@ package
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
class A class A
class D { class D {
@@ -9,7 +11,7 @@ class D {
val cTopLevel: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>IncorrectThis<A>()<!> val cTopLevel: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>IncorrectThis<A>()<!>
class IncorrectThis<T> { class IncorrectThis<T> {
fun <R> get(t: Any?, p: PropertyMetadata): Int { fun <R> get(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -20,7 +20,7 @@ public final class D {
public final class IncorrectThis</*0*/ T> { public final class IncorrectThis</*0*/ T> {
public constructor IncorrectThis</*0*/ T>() public constructor IncorrectThis</*0*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun </*0*/ R> get(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): kotlin.Int public final fun </*0*/ R> get(/*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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
package baz package baz
import kotlin.reflect.KProperty
class A(outer: Outer) { class A(outer: Outer) {
var i: String by + getMyConcreteProperty() var i: String by + getMyConcreteProperty()
var d: String by getMyConcreteProperty() - 1 var d: String by getMyConcreteProperty() - 1
@@ -21,12 +23,12 @@ fun getMyConcreteProperty() = MyProperty<Any?, String>()
class MyProperty<R, T> { class MyProperty<R, T> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): T { operator fun getValue(thisRef: R, desc: KProperty<*>): T {
println("get $thisRef ${desc.name}") println("get $thisRef ${desc.name}")
return null as T return null as T
} }
operator fun setValue(thisRef: R, desc: PropertyMetadata, value: T) { operator fun setValue(thisRef: R, desc: KProperty<*>, value: T) {
println("set $thisRef ${desc.name} $value") println("set $thisRef ${desc.name} $value")
} }
} }
@@ -47,4 +49,4 @@ interface Outer {
} }
// ----------------- // -----------------
fun println(a: Any?) = a fun println(a: Any?) = a
@@ -26,9 +26,9 @@ package baz {
public final class MyProperty</*0*/ R, /*1*/ T> { public final class MyProperty</*0*/ R, /*1*/ T> {
public constructor MyProperty</*0*/ R, /*1*/ T>() public constructor MyProperty</*0*/ R, /*1*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata, /*2*/ value: T): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>, /*2*/ value: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,11 +1,13 @@
package foo package foo
import kotlin.reflect.KProperty
class A1 { class A1 {
val a: String by MyProperty1() val a: String by MyProperty1()
} }
class MyProperty1 {} class MyProperty1 {}
operator fun MyProperty1.getValue(thisRef: Any?, desc: PropertyMetadata): String { operator fun MyProperty1.getValue(thisRef: Any?, desc: KProperty<*>): String {
throw Exception("$thisRef $desc") throw Exception("$thisRef $desc")
} }
@@ -16,7 +18,7 @@ class A2 {
} }
class MyProperty2<T> {} class MyProperty2<T> {}
operator fun <T> MyProperty2<T>.getValue(thisRef: Any?, desc: PropertyMetadata): T { operator fun <T> MyProperty2<T>.getValue(thisRef: Any?, desc: KProperty<*>): T {
throw Exception("$thisRef $desc") throw Exception("$thisRef $desc")
} }
@@ -27,7 +29,7 @@ class A3 {
class MyProperty3<T> {} class MyProperty3<T> {}
operator fun <T> MyProperty3<T>.getValue(thisRef: Any?, desc: PropertyMetadata): T { operator fun <T> MyProperty3<T>.getValue(thisRef: Any?, desc: KProperty<*>): T {
throw Exception("$thisRef $desc") throw Exception("$thisRef $desc")
} }
} }
@@ -1,8 +1,8 @@
package package
package foo { package foo {
public operator fun foo.MyProperty1.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata): kotlin.String public operator fun foo.MyProperty1.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>): kotlin.String
public operator fun </*0*/ T> foo.MyProperty2<T>.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata): T public operator fun </*0*/ T> foo.MyProperty2<T>.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public final class A1 { public final class A1 {
public constructor A1() public constructor A1()
@@ -26,7 +26,7 @@ package foo {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun </*0*/ T> foo.A3.MyProperty3<T>.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun </*0*/ T> foo.A3.MyProperty3<T>.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public final class MyProperty3</*0*/ T> { public final class MyProperty3</*0*/ T> {
public constructor MyProperty3</*0*/ T>() public constructor MyProperty3</*0*/ T>()
@@ -1,5 +1,7 @@
package foo package foo
import kotlin.reflect.KProperty
open class A { open class A {
val B.w: Int by <!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>MyProperty<!>() val B.w: Int by <!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>MyProperty<!>()
} }
@@ -13,7 +15,7 @@ class B {
} }
class MyProperty<R : A, T> { class MyProperty<R : A, T> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): T { operator fun getValue(thisRef: R, desc: KProperty<*>): T {
throw Exception("$thisRef $desc") throw Exception("$thisRef $desc")
} }
} }
@@ -23,7 +23,7 @@ package foo {
public final class MyProperty</*0*/ R : foo.A, /*1*/ T> { public final class MyProperty</*0*/ R : foo.A, /*1*/ T> {
public constructor MyProperty</*0*/ R : foo.A, /*1*/ T>() public constructor MyProperty</*0*/ R : foo.A, /*1*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,24 +1,26 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
class A<R>() { class A<R>() {
operator fun <T> getValue(t: Any?, p: PropertyMetadata): T = null!! operator fun <T> getValue(t: Any?, p: KProperty<*>): T = null!!
operator fun <T> setValue(t: Any?, p: PropertyMetadata, x: T) = Unit operator fun <T> setValue(t: Any?, p: KProperty<*>, x: T) = Unit
} }
var a1: Int by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>A<!>() var a1: Int by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>A<!>()
var a2: Int by A<String>() var a2: Int by A<String>()
class B<R>() { class B<R>() {
operator fun <T> getValue(t: Any?, p: PropertyMetadata): T = null!! operator fun <T> getValue(t: Any?, p: KProperty<*>): T = null!!
operator fun setValue(t: Any?, p: PropertyMetadata, x: R) = Unit operator fun setValue(t: Any?, p: KProperty<*>, x: R) = Unit
} }
var b1: Int by B() var b1: Int by B()
var b2: Int by B<Number>() var b2: Int by B<Number>()
class C<R>() { class C<R>() {
operator fun getValue(t: Any?, p: PropertyMetadata): R = null!! operator fun getValue(t: Any?, p: KProperty<*>): R = null!!
operator fun <T> setValue(t: Any?, p: PropertyMetadata, x: T) = Unit operator fun <T> setValue(t: Any?, p: KProperty<*>, x: T) = Unit
} }
var c1: Int by C() var c1: Int by C()
@@ -10,26 +10,26 @@ public var c2: kotlin.Int
public final class A</*0*/ R> { public final class A</*0*/ R> {
public constructor A</*0*/ R>() public constructor A</*0*/ R>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun </*0*/ T> getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): T public final operator fun </*0*/ T> getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun </*0*/ T> setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ x: T): kotlin.Unit public final operator fun </*0*/ T> setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ x: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public final class B</*0*/ R> { public final class B</*0*/ R> {
public constructor B</*0*/ R>() public constructor B</*0*/ R>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun </*0*/ T> getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): T public final operator fun </*0*/ T> getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ x: R): kotlin.Unit public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ x: R): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public final class C</*0*/ R> { public final class C</*0*/ R> {
public constructor C</*0*/ R>() public constructor C</*0*/ R>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): R public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): R
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun </*0*/ T> setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ x: T): kotlin.Unit public final operator fun </*0*/ T> setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ x: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,4 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
var a: Int by A() var a: Int by A()
var a1 by <!DELEGATE_SPECIAL_FUNCTION_MISSING, DELEGATE_SPECIAL_FUNCTION_MISSING!>A()<!> var a1 by <!DELEGATE_SPECIAL_FUNCTION_MISSING, DELEGATE_SPECIAL_FUNCTION_MISSING!>A()<!>
@@ -8,16 +10,16 @@ val cObj = C()
var c: String by cObj var c: String by cObj
class A { class A {
operator fun <T> getValue(t: Any?, p: PropertyMetadata): T = null!! operator fun <T> getValue(t: Any?, p: KProperty<*>): T = null!!
operator fun <T> setValue(t: Any?, p: PropertyMetadata, x: T) = Unit operator fun <T> setValue(t: Any?, p: KProperty<*>, x: T) = Unit
} }
class B class B
operator fun <T> B.getValue(t: Any?, p: PropertyMetadata): T = null!! operator fun <T> B.getValue(t: Any?, p: KProperty<*>): T = null!!
operator fun <T> B.setValue(t: Any?, p: PropertyMetadata, x: T) = Unit operator fun <T> B.setValue(t: Any?, p: KProperty<*>, x: T) = Unit
class C class C
operator inline fun <reified T> C.getValue(t: Any?, p: PropertyMetadata): T = null!! operator inline fun <reified T> C.getValue(t: Any?, p: KProperty<*>): T = null!!
operator inline fun <reified T> C.setValue(t: Any?, p: PropertyMetadata, x: T) = Unit operator inline fun <reified T> C.setValue(t: Any?, p: KProperty<*>, x: T) = Unit
@@ -5,17 +5,17 @@ public var a1: [ERROR : Type from delegate]
public var b: kotlin.Int public var b: kotlin.Int
public var c: kotlin.String public var c: kotlin.String
public val cObj: C public val cObj: C
public operator fun </*0*/ T> B.getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): T public operator fun </*0*/ T> B.getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): T
@kotlin.inline() public operator fun </*0*/ reified T> C.getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): T @kotlin.inline() public operator fun </*0*/ reified T> C.getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): T
public operator fun </*0*/ T> B.setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ x: T): kotlin.Unit public operator fun </*0*/ T> B.setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ x: T): kotlin.Unit
@kotlin.inline() public operator fun </*0*/ reified T> C.setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ x: T): kotlin.Unit @kotlin.inline() public operator fun </*0*/ reified T> C.setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ x: T): kotlin.Unit
public final class A { public final class A {
public constructor A() public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun </*0*/ T> getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): T public final operator fun </*0*/ T> getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun </*0*/ T> setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ x: T): kotlin.Unit public final operator fun </*0*/ T> setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ x: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,9 +1,11 @@
import kotlin.reflect.KProperty
class A3 { class A3 {
val a: String by l@ MyProperty() val a: String by l@ MyProperty()
class MyProperty<T> {} class MyProperty<T> {}
operator fun <T> MyProperty<T>.getValue(thisRef: Any?, desc: PropertyMetadata): T { operator fun <T> MyProperty<T>.getValue(thisRef: Any?, desc: KProperty<*>): T {
throw Exception("$thisRef $desc") throw Exception("$thisRef $desc")
} }
} }
@@ -6,7 +6,7 @@ public final class A3 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun </*0*/ T> A3.MyProperty<T>.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun </*0*/ T> A3.MyProperty<T>.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public final class MyProperty</*0*/ T> { public final class MyProperty</*0*/ T> {
public constructor MyProperty</*0*/ T>() public constructor MyProperty</*0*/ T>()
@@ -1,5 +1,7 @@
package foo package foo
import kotlin.reflect.KProperty
class A { class A {
var a5: String by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>MyProperty1<!>() var a5: String by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>MyProperty1<!>()
var b5: String by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>getMyProperty1<!>() var b5: String by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>getMyProperty1<!>()
@@ -9,7 +11,7 @@ fun <A, B> getMyProperty1() = MyProperty1<A, B>()
class MyProperty1<T, R> { class MyProperty1<T, R> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): T { operator fun getValue(thisRef: R, desc: KProperty<*>): T {
throw Exception() throw Exception()
} }
@@ -29,7 +31,7 @@ fun <A, B> getMyProperty2() = MyProperty2<A, B>()
class MyProperty2<T, R> { class MyProperty2<T, R> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): T { operator fun getValue(thisRef: R, desc: KProperty<*>): T {
throw Exception() throw Exception()
} }
@@ -39,4 +41,4 @@ class MyProperty2<T, R> {
} }
// ----------------- // -----------------
fun println(a: Any?) = a fun println(a: Any?) = a
@@ -26,7 +26,7 @@ package foo {
public final class MyProperty1</*0*/ T, /*1*/ R> { public final class MyProperty1</*0*/ T, /*1*/ R> {
public constructor MyProperty1</*0*/ T, /*1*/ R>() public constructor MyProperty1</*0*/ T, /*1*/ R>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ i: kotlin.Int, /*1*/ j: kotlin.Any, /*2*/ k: kotlin.Int): kotlin.Unit public final operator fun setValue(/*0*/ i: kotlin.Int, /*1*/ j: kotlin.Any, /*2*/ k: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -35,7 +35,7 @@ package foo {
public final class MyProperty2</*0*/ T, /*1*/ R> { public final class MyProperty2</*0*/ T, /*1*/ R> {
public constructor MyProperty2</*0*/ T, /*1*/ R>() public constructor MyProperty2</*0*/ T, /*1*/ R>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ i: kotlin.Int): kotlin.Unit public final operator fun setValue(/*0*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -1,14 +1,16 @@
import kotlin.reflect.KProperty
class A { class A {
var a by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>MyProperty<!>() var a by <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>MyProperty<!>()
} }
class MyProperty<T, R> { class MyProperty<T, R> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): T { operator fun getValue(thisRef: R, desc: KProperty<*>): T {
throw Exception("$thisRef $desc") throw Exception("$thisRef $desc")
} }
operator fun setValue(thisRef: R, desc: PropertyMetadata, t: T) { operator fun setValue(thisRef: R, desc: KProperty<*>, t: T) {
throw Exception("$thisRef $desc $t") throw Exception("$thisRef $desc $t")
} }
} }
@@ -11,8 +11,8 @@ public final class A {
public final class MyProperty</*0*/ T, /*1*/ R> { public final class MyProperty</*0*/ T, /*1*/ R> {
public constructor MyProperty</*0*/ T, /*1*/ R>() public constructor MyProperty</*0*/ T, /*1*/ R>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata, /*2*/ t: T): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>, /*2*/ t: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !CHECK_TYPE // !CHECK_TYPE
import kotlin.reflect.KProperty
class A { class A {
val a by MyProperty() val a by MyProperty()
@@ -9,5 +11,5 @@ class A {
} }
class MyProperty<R> { class MyProperty<R> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): Int = throw Exception("$thisRef $desc") operator fun getValue(thisRef: R, desc: KProperty<*>): Int = throw Exception("$thisRef $desc")
} }
@@ -12,7 +12,7 @@ public final class A {
public final class MyProperty</*0*/ R> { public final class MyProperty</*0*/ R> {
public constructor MyProperty</*0*/ R>() public constructor MyProperty</*0*/ R>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): kotlin.Int public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
package foo package foo
import kotlin.reflect.KProperty
class A1 { class A1 {
var a1: String by MyProperty1() var a1: String by MyProperty1()
var b1: String by getMyProperty1() var b1: String by getMyProperty1()
@@ -12,12 +14,12 @@ fun <A, B> getMyProperty1() = MyProperty1<A, B>()
class MyProperty1<R, T> { class MyProperty1<R, T> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): T { operator fun getValue(thisRef: R, desc: KProperty<*>): T {
println("get $thisRef ${desc.name}") println("get $thisRef ${desc.name}")
throw Exception() throw Exception()
} }
operator fun setValue(thisRef: R, desc: PropertyMetadata, value: T) { operator fun setValue(thisRef: R, desc: KProperty<*>, value: T) {
println("set $thisRef ${desc.name} $value") println("set $thisRef ${desc.name} $value")
} }
} }
@@ -36,12 +38,12 @@ fun <A> getMyProperty2() = MyProperty2<A>()
class MyProperty2<T> { class MyProperty2<T> {
operator fun getValue(thisRef: Any?, desc: PropertyMetadata): T { operator fun getValue(thisRef: Any?, desc: KProperty<*>): T {
println("get $thisRef ${desc.name}") println("get $thisRef ${desc.name}")
throw Exception() throw Exception()
} }
operator fun setValue(thisRef: Any?, desc: PropertyMetadata, value: T) { operator fun setValue(thisRef: Any?, desc: KProperty<*>, value: T) {
println("set $thisRef ${desc.name} $value") println("set $thisRef ${desc.name} $value")
} }
} }
@@ -60,15 +62,15 @@ fun <A> getMyProperty3() = MyProperty3<A>()
class MyProperty3<T> { class MyProperty3<T> {
operator fun getValue(thisRef: T, desc: PropertyMetadata): String { operator fun getValue(thisRef: T, desc: KProperty<*>): String {
println("get $thisRef ${desc.name}") println("get $thisRef ${desc.name}")
return "" return ""
} }
operator fun setValue(thisRef: Any?, desc: PropertyMetadata, value: T) { operator fun setValue(thisRef: Any?, desc: KProperty<*>, value: T) {
println("set $thisRef ${desc.name} $value") println("set $thisRef ${desc.name} $value")
} }
} }
//-------------------------- //--------------------------
fun println(a: Any?) = a fun println(a: Any?) = a
@@ -42,27 +42,27 @@ package foo {
public final class MyProperty1</*0*/ R, /*1*/ T> { public final class MyProperty1</*0*/ R, /*1*/ T> {
public constructor MyProperty1</*0*/ R, /*1*/ T>() public constructor MyProperty1</*0*/ R, /*1*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata, /*2*/ value: T): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>, /*2*/ value: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public final class MyProperty2</*0*/ T> { public final class MyProperty2</*0*/ T> {
public constructor MyProperty2</*0*/ T>() public constructor MyProperty2</*0*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata, /*2*/ value: T): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>, /*2*/ value: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public final class MyProperty3</*0*/ T> { public final class MyProperty3</*0*/ T> {
public constructor MyProperty3</*0*/ T>() public constructor MyProperty3</*0*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: T, /*1*/ desc: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: T, /*1*/ desc: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata, /*2*/ value: T): kotlin.Unit public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>, /*2*/ value: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
} }
@@ -1,5 +1,7 @@
package foo package foo
import kotlin.reflect.KProperty
class A1 { class A1 {
val a1: String by MyProperty1() val a1: String by MyProperty1()
val b1: String by getMyProperty1() val b1: String by getMyProperty1()
@@ -12,7 +14,7 @@ fun <A, B> getMyProperty1() = MyProperty1<A, B>()
class MyProperty1<R, T> { class MyProperty1<R, T> {
operator fun getValue(thisRef: R, desc: PropertyMetadata): T { operator fun getValue(thisRef: R, desc: KProperty<*>): T {
println("get $thisRef ${desc.name}") println("get $thisRef ${desc.name}")
throw Exception() throw Exception()
} }
@@ -32,7 +34,7 @@ fun <A> getMyProperty2() = MyProperty2<A>()
class MyProperty2<T> { class MyProperty2<T> {
operator fun getValue(thisRef: Any?, desc: PropertyMetadata): T { operator fun getValue(thisRef: Any?, desc: KProperty<*>): T {
println("get $thisRef ${desc.name}") println("get $thisRef ${desc.name}")
throw Exception() throw Exception()
} }
@@ -52,11 +54,11 @@ fun <A> getMyProperty3() = MyProperty3<A>()
class MyProperty3<T> { class MyProperty3<T> {
operator fun getValue(thisRef: T, desc: PropertyMetadata): String { operator fun getValue(thisRef: T, desc: KProperty<*>): String {
println("get $thisRef ${desc.name}") println("get $thisRef ${desc.name}")
return "" return ""
} }
} }
//-------------------------- //--------------------------
fun println(a: Any?) = a fun println(a: Any?) = a
@@ -42,7 +42,7 @@ package foo {
public final class MyProperty1</*0*/ R, /*1*/ T> { public final class MyProperty1</*0*/ R, /*1*/ T> {
public constructor MyProperty1</*0*/ R, /*1*/ T>() public constructor MyProperty1</*0*/ R, /*1*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: R, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -50,7 +50,7 @@ package foo {
public final class MyProperty2</*0*/ T> { public final class MyProperty2</*0*/ T> {
public constructor MyProperty2</*0*/ T>() public constructor MyProperty2</*0*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.PropertyMetadata): T public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ desc: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -58,7 +58,7 @@ package foo {
public final class MyProperty3</*0*/ T> { public final class MyProperty3</*0*/ T> {
public constructor MyProperty3</*0*/ T>() public constructor MyProperty3</*0*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: T, /*1*/ desc: kotlin.PropertyMetadata): kotlin.String public final operator fun getValue(/*0*/ thisRef: T, /*1*/ desc: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
import kotlin.reflect.KProperty
class Local { class Local {
fun foo() { fun foo() {
val a: Int <!LOCAL_VARIABLE_WITH_DELEGATE!>by Delegate()<!> val a: Int <!LOCAL_VARIABLE_WITH_DELEGATE!>by Delegate()<!>
@@ -7,7 +9,7 @@ class Local {
} }
class Delegate { class Delegate {
fun getValue(t: Any?, p: PropertyMetadata): Int { fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -3,7 +3,7 @@ package
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata): kotlin.Int public final 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,3 +1,3 @@
val a: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING(getValue\(kotlin.Nothing?, kotlin.PropertyMetadata\); A)!>A()<!> val a: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING(getValue\(kotlin.Nothing?, kotlin.reflect.KProperty<*>\); A)!>A()<!>
class A class A
@@ -1,9 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
var a: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING(setValue\(kotlin.Nothing?, kotlin.PropertyMetadata, kotlin.Int\); A)!>A()<!> import kotlin.reflect.KProperty
var a: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING(setValue\(kotlin.Nothing?, kotlin.reflect.KProperty<*>, kotlin.Int\); A)!>A()<!>
class A { class A {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -5,7 +5,7 @@ public var a: kotlin.Int
public final class A { public final class A {
public constructor A() public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,9 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
class B { class B {
val c by Delegate(<!UNRESOLVED_REFERENCE!>ag<!>) val c by Delegate(<!UNRESOLVED_REFERENCE!>ag<!>)
} }
class Delegate<T: Any>(val init: T) { class Delegate<T: Any>(val init: T) {
operator fun getValue(t: Any?, p: PropertyMetadata): Int = null!! operator fun getValue(t: Any?, p: KProperty<*>): Int = null!!
} }
@@ -12,7 +12,7 @@ public final class Delegate</*0*/ T : kotlin.Any> {
public constructor Delegate</*0*/ T : kotlin.Any>(/*0*/ init: T) public constructor Delegate</*0*/ T : kotlin.Any>(/*0*/ init: T)
public final val init: T public final val init: T
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,13 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by <!DELEGATE_SPECIAL_FUNCTION_AMBIGUITY!>Delegate()<!> val a: Int by <!DELEGATE_SPECIAL_FUNCTION_AMBIGUITY!>Delegate()<!>
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
fun propertyDelegated(p: PropertyMetadata, i: Int = 1) {} fun propertyDelegated(p: KProperty<*>, i: Int = 1) {}
fun propertyDelegated(p: PropertyMetadata, s: String = "") {} fun propertyDelegated(p: KProperty<*>, s: String = "") {}
} }
@@ -5,9 +5,9 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public final fun propertyDelegated(/*0*/ p: kotlin.PropertyMetadata, /*1*/ i: kotlin.Int = ...): kotlin.Unit public final fun propertyDelegated(/*0*/ p: kotlin.reflect.KProperty<*>, /*1*/ i: kotlin.Int = ...): kotlin.Unit
public final fun propertyDelegated(/*0*/ p: kotlin.PropertyMetadata, /*1*/ s: kotlin.String = ...): kotlin.Unit public final fun propertyDelegated(/*0*/ p: kotlin.reflect.KProperty<*>, /*1*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,11 +1,13 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by <!DELEGATE_PD_METHOD_NONE_APPLICABLE!>Delegate()<!> val a: Int by <!DELEGATE_PD_METHOD_NONE_APPLICABLE!>Delegate()<!>
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
fun <T> propertyDelegated(p: PropertyMetadata) {} fun <T> propertyDelegated(p: KProperty<*>) {}
} }
@@ -5,8 +5,8 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public final fun </*0*/ T> propertyDelegated(/*0*/ p: kotlin.PropertyMetadata): kotlin.Unit public final fun </*0*/ T> propertyDelegated(/*0*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,9 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by Delegate() val a: Int by Delegate()
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -5,7 +5,7 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,11 +1,13 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by <!DELEGATE_PD_METHOD_NONE_APPLICABLE!>Delegate()<!> val a: Int by <!DELEGATE_PD_METHOD_NONE_APPLICABLE!>Delegate()<!>
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
private fun propertyDelegated(p: PropertyMetadata) {} private fun propertyDelegated(p: KProperty<*>) {}
} }
@@ -5,8 +5,8 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
private final fun propertyDelegated(/*0*/ p: kotlin.PropertyMetadata): kotlin.Unit private final fun propertyDelegated(/*0*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,9 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by <!DELEGATE_PD_METHOD_NONE_APPLICABLE!>Delegate()<!> val a: Int by <!DELEGATE_PD_METHOD_NONE_APPLICABLE!>Delegate()<!>
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
@@ -13,5 +15,5 @@ class Delegate {
fun propertyDelegated(a: String) {} fun propertyDelegated(a: String) {}
fun propertyDelegated(p: PropertyMetadata, a: Int) {} fun propertyDelegated(p: KProperty<*>, a: Int) {}
} }
@@ -5,11 +5,11 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public final fun propertyDelegated(): kotlin.Unit public final fun propertyDelegated(): kotlin.Unit
public final fun propertyDelegated(/*0*/ a: kotlin.Int): kotlin.Unit public final fun propertyDelegated(/*0*/ a: kotlin.Int): kotlin.Unit
public final fun propertyDelegated(/*0*/ p: kotlin.PropertyMetadata, /*1*/ a: kotlin.Int): kotlin.Unit
public final fun propertyDelegated(/*0*/ a: kotlin.String): kotlin.Unit public final fun propertyDelegated(/*0*/ a: kotlin.String): kotlin.Unit
public final fun propertyDelegated(/*0*/ p: kotlin.reflect.KProperty<*>, /*1*/ a: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!> val a by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>
val b by Delegate(<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>b<!>) val b by Delegate(<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>b<!>)
@@ -8,7 +10,7 @@ val c by <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>d<!>
val d by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>c<!> val d by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>c<!>
class Delegate(i: Int) { class Delegate(i: Int) {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -8,7 +8,7 @@ public val d: [ERROR : <ERROR FUNCTION RETURN TYPE>]
public final class Delegate { public final class Delegate {
public constructor Delegate(/*0*/ i: kotlin.Int) public constructor Delegate(/*0*/ i: kotlin.Int)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,10 +1,12 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val a: Int by Delegate() val a: Int by Delegate()
<!ACCESSOR_FOR_DELEGATED_PROPERTY!>get() = 1<!> <!ACCESSOR_FOR_DELEGATED_PROPERTY!>get() = 1<!>
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -5,7 +5,7 @@ public val a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,13 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
var a: Int by Delegate() var a: Int by Delegate()
<!ACCESSOR_FOR_DELEGATED_PROPERTY!>get() = 1<!> <!ACCESSOR_FOR_DELEGATED_PROPERTY!>get() = 1<!>
<!ACCESSOR_FOR_DELEGATED_PROPERTY!>set(i) {}<!> <!ACCESSOR_FOR_DELEGATED_PROPERTY!>set(i) {}<!>
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
operator fun setValue(t: Any?, p: PropertyMetadata, i: Int) {} operator fun setValue(t: Any?, p: KProperty<*>, i: Int) {}
} }
@@ -5,8 +5,8 @@ public var a: kotlin.Int
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ i: kotlin.Int): kotlin.Unit public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
class D { class D {
var c: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>Delegate()<!> var c: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>Delegate()<!>
} }
@@ -9,8 +11,8 @@ var cTopLevel: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>Delegate()<!>
class A class A
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
operator fun setValue(t: A, p: PropertyMetadata, i: Int) {} operator fun setValue(t: A, p: KProperty<*>, i: Int) {}
} }
@@ -20,8 +20,8 @@ public final class D {
public final class Delegate { public final class Delegate {
public constructor Delegate() public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ t: A, /*1*/ p: kotlin.PropertyMetadata, /*2*/ i: kotlin.Int): kotlin.Unit public final operator fun setValue(/*0*/ t: A, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,15 +1,16 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
open class Base open class Base
class Derived: Base() class Derived: Base()
var a: Derived by A() var a: Derived by A()
class A { class A {
operator fun getValue(t: Any?, p: PropertyMetadata): Derived { operator fun getValue(t: Any?, p: KProperty<*>): Derived {
return Derived() return Derived()
} }
operator fun setValue(t: Any?, p: PropertyMetadata, i: Base) {} operator fun setValue(t: Any?, p: KProperty<*>, i: Base) {}
} }
@@ -5,9 +5,9 @@ public var a: Derived
public final class A { public final class A {
public constructor A() public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): Derived public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): Derived
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadata, /*2*/ i: Base): kotlin.Unit public final operator fun setValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ i: Base): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
val Int.a by Delegate(<!NO_THIS!>this<!>) val Int.a by Delegate(<!NO_THIS!>this<!>)
class A { class A {
@@ -7,7 +9,7 @@ class A {
} }
class Delegate(i: Int) { class Delegate(i: Int) {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
} }
@@ -13,7 +13,7 @@ public final class A {
public final class Delegate { public final class Delegate {
public constructor Delegate(/*0*/ i: kotlin.Int) public constructor Delegate(/*0*/ i: kotlin.Int)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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.PropertyMetadata): kotlin.Int 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,5 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
class A { class A {
var a: Int by Delegate() var a: Int by Delegate()
} }
@@ -7,8 +9,8 @@ class A {
var aTopLevel: Int by Delegate() var aTopLevel: Int by Delegate()
class Delegate { class Delegate {
operator fun getValue(t: Any?, p: PropertyMetadata): Int { operator fun getValue(t: Any?, p: KProperty<*>): Int {
return 1 return 1
} }
operator fun setValue(t: Any?, p: PropertyMetadata, a: Int) {} operator fun setValue(t: Any?, p: KProperty<*>, a: Int) {}
} }

Some files were not shown because too many files have changed in this diff Show More