Deprecations: data class should now have at least one primary constructor parameter, parameters should be val / var and not vararg.

This commit is contained in:
Mikhail Glukhikh
2015-09-22 13:25:37 +03:00
parent 3d6253c27f
commit 55c7df8b8d
29 changed files with 75 additions and 180 deletions
@@ -1,6 +0,0 @@
data class A(<!UNUSED_PARAMETER!>x<!>: Int, <!UNUSED_PARAMETER!>y<!>: String)
fun foo(a: A) {
a.<!UNRESOLVED_REFERENCE!>component1<!>()
a.<!UNRESOLVED_REFERENCE!>component2<!>()
}
@@ -1,11 +0,0 @@
package
public fun foo(/*0*/ a: A): kotlin.Unit
@kotlin.data() public final class A {
public constructor A(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String): A
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,3 @@
data class My(val x: Int, <!DATA_CLASS_VARARG_PARAMETER!>vararg val y: String<!>)
data class Your(<!DATA_CLASS_VARARG_PARAMETER, DATA_CLASS_NOT_PROPERTY_PARAMETER!>vararg <!UNUSED_PARAMETER!>z<!>: String<!>)
@@ -0,0 +1,21 @@
package
@kotlin.data() public final class My {
public constructor My(/*0*/ x: kotlin.Int, /*1*/ vararg y: kotlin.String /*kotlin.Array<out kotlin.String>*/)
public final val x: kotlin.Int
public final val y: kotlin.Array<out kotlin.String>
public final /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun component2(): kotlin.Array<out kotlin.String>
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ vararg y: kotlin.String /*kotlin.Array<out kotlin.String>*/ = ...): My
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.data() public final class Your {
public constructor Your(/*0*/ vararg z: kotlin.String /*kotlin.Array<out kotlin.String>*/)
public final /*synthesized*/ fun copy(/*0*/ vararg z: kotlin.String /*kotlin.Array<out kotlin.String>*/): Your
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -6,6 +6,6 @@ open class NotAllowed
class Derived: Base(42)
<!DATA_CLASS_OVERRIDE_CONFLICT!>data<!> class Nasty(x: Int, val y: Int): <!DATA_CLASS_CANNOT_HAVE_CLASS_SUPERTYPES!>Base<!>(x)
<!DATA_CLASS_OVERRIDE_CONFLICT!>data<!> class Nasty(val z: Int, val y: Int): <!DATA_CLASS_CANNOT_HAVE_CLASS_SUPERTYPES!>Base<!>(z)
data class Complex(val y: Int): Allowed, <!DATA_CLASS_CANNOT_HAVE_CLASS_SUPERTYPES!>NotAllowed<!>()
@@ -37,12 +37,14 @@ public final class Derived : Base {
}
@kotlin.data() public final class Nasty : Base {
public constructor Nasty(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int)
public constructor Nasty(/*0*/ z: kotlin.Int, /*1*/ y: kotlin.Int)
public final override /*1*/ /*fake_override*/ val x: kotlin.Int
public final val y: kotlin.Int
public final val z: kotlin.Int
public final override /*1*/ /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun component2(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun copy(/*0*/ x: kotlin.Int = ...): Base
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int = ...): Nasty
public final /*synthesized*/ fun copy(/*0*/ z: kotlin.Int = ..., /*1*/ y: kotlin.Int = ...): Nasty
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -1,4 +1,4 @@
data class A()
data class <!DATA_CLASS_WITHOUT_PARAMETERS!>A<!>()
fun foo(a: A) {
a.<!UNRESOLVED_REFERENCE!>component1<!>()
@@ -1,8 +0,0 @@
// !CHECK_TYPE
data class A(val x: Int, <!UNUSED_PARAMETER!>y<!>: String)
fun foo(a: A) {
checkSubtype<Int>(a.component1())
a.<!UNRESOLVED_REFERENCE!>component2<!>()
}
@@ -1,13 +0,0 @@
package
public fun foo(/*0*/ a: A): kotlin.Unit
@kotlin.data() public final class A {
public constructor A(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public final val x: kotlin.Int
public final /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.String): A
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,8 +0,0 @@
// !CHECK_TYPE
data class A(var x: Int, <!UNUSED_PARAMETER!>y<!>: String)
fun foo(a: A) {
checkSubtype<Int>(a.component1())
a.<!UNRESOLVED_REFERENCE!>component2<!>()
}
@@ -1,13 +0,0 @@
package
public fun foo(/*0*/ a: A): kotlin.Unit
@kotlin.data() public final class A {
public constructor A(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public final var x: kotlin.Int
public final /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.String): A
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,4 +1,4 @@
data class A
data class <!DATA_CLASS_WITHOUT_PARAMETERS!>A<!>
fun foo(a: A) {
a.<!UNRESOLVED_REFERENCE!>component1<!>()
@@ -1,10 +0,0 @@
data class A(foo: String, val bar: Int, other: Long) {
val foo = foo
val other = other
}
fun test(a: A) {
a.component1()
a.<!UNRESOLVED_REFERENCE!>component2<!>()
a.<!UNRESOLVED_REFERENCE!>component3<!>()
}
@@ -1,15 +0,0 @@
package
public fun test(/*0*/ a: A): kotlin.Unit
@kotlin.data() public final class A {
public constructor A(/*0*/ foo: kotlin.String, /*1*/ bar: kotlin.Int, /*2*/ other: kotlin.Long)
public final val bar: kotlin.Int
public final val foo: kotlin.String
public final val other: kotlin.Long
public final /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ foo: kotlin.String, /*1*/ bar: kotlin.Int = ..., /*2*/ other: kotlin.Long): A
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,8 +0,0 @@
// !CHECK_TYPE
data class A(<!UNUSED_PARAMETER!>x<!>: Int, val y: String)
fun foo(a: A) {
checkSubtype<String>(a.component1())
a.<!UNRESOLVED_REFERENCE!>component2<!>()
}
@@ -1,13 +0,0 @@
package
public fun foo(/*0*/ a: A): kotlin.Unit
@kotlin.data() public final class A {
public constructor A(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public final val y: kotlin.String
public final /*synthesized*/ fun component1(): kotlin.String
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...): A
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,8 +0,0 @@
// !CHECK_TYPE
data class A(<!UNUSED_PARAMETER!>x<!>: Int, var y: String)
fun foo(a: A) {
checkSubtype<String>(a.component1())
a.<!UNRESOLVED_REFERENCE!>component2<!>()
}
@@ -1,13 +0,0 @@
package
public fun foo(/*0*/ a: A): kotlin.Unit
@kotlin.data() public final class A {
public constructor A(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public final var y: kotlin.String
public final /*synthesized*/ fun component1(): kotlin.String
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...): A
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}