deprecate required classes for traits

This commit is contained in:
Dmitry Jemerov
2015-04-10 18:04:45 +02:00
committed by Andrey Breslav
parent 7b0f6018dc
commit 900a16a315
31 changed files with 74 additions and 62 deletions
@@ -1,8 +1,8 @@
open class Base() {
trait Base {
fun f() = 1
}
open class Left() : Base()
open class Left() : Base
trait Right : Base
@@ -1,9 +1,8 @@
package
internal open class Base {
public constructor Base()
internal trait Base {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final fun f(): kotlin.Int
internal open fun f(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -11,7 +10,7 @@ internal open class Base {
internal final class Diamond : Left, Right {
public constructor Diamond()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final override /*2*/ /*fake_override*/ fun f(): kotlin.Int
internal open override /*2*/ /*fake_override*/ fun f(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -19,14 +18,14 @@ internal final class Diamond : Left, Right {
internal open class Left : Base {
public constructor Left()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final override /*1*/ /*fake_override*/ fun f(): kotlin.Int
internal open override /*1*/ /*fake_override*/ fun f(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal trait Right : Base {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final override /*1*/ /*fake_override*/ fun f(): kotlin.Int
internal open override /*1*/ /*fake_override*/ fun f(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,8 +1,8 @@
open class Base<P>() {
trait Base<P> {
fun f() = 1
}
open class Left<P>() : Base<P>()
open class Left<P>() : Base<P>
trait Right<P> : Base<P>
@@ -1,9 +1,8 @@
package
internal open class Base</*0*/ P> {
public constructor Base</*0*/ P>()
internal trait Base</*0*/ P> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final fun f(): kotlin.Int
internal open fun f(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -11,7 +10,7 @@ internal open class Base</*0*/ P> {
internal final class Diamond</*0*/ P> : Left<P>, Right<P> {
public constructor Diamond</*0*/ P>()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final override /*2*/ /*fake_override*/ fun f(): kotlin.Int
internal open override /*2*/ /*fake_override*/ fun f(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -19,14 +18,14 @@ internal final class Diamond</*0*/ P> : Left<P>, Right<P> {
internal open class Left</*0*/ P> : Base<P> {
public constructor Left</*0*/ P>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final override /*1*/ /*fake_override*/ fun f(): kotlin.Int
internal open override /*1*/ /*fake_override*/ fun f(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal trait Right</*0*/ P> : Base<P> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final override /*1*/ /*fake_override*/ fun f(): kotlin.Int
internal open override /*1*/ /*fake_override*/ fun f(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,9 +1,10 @@
open class Base() {
var v : Int = 0
trait Base {
var v : Int
get() = 1
set(v) {}
}
open class Left() : Base()
open class Left() : Base
trait Right : Base
@@ -1,8 +1,7 @@
package
internal open class Base {
public constructor Base()
internal final var v: kotlin.Int
internal trait Base {
internal open var v: kotlin.Int
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
@@ -10,7 +9,7 @@ internal open class Base {
internal final class Diamond : Left, Right {
public constructor Diamond()
internal final override /*2*/ /*fake_override*/ var v: kotlin.Int
internal open override /*2*/ /*fake_override*/ var v: kotlin.Int
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
@@ -18,14 +17,14 @@ internal final class Diamond : Left, Right {
internal open class Left : Base {
public constructor Left()
internal final override /*1*/ /*fake_override*/ var v: kotlin.Int
internal open override /*1*/ /*fake_override*/ var v: kotlin.Int
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
}
internal trait Right : Base {
internal final override /*1*/ /*fake_override*/ var v: kotlin.Int
internal open override /*1*/ /*fake_override*/ var v: kotlin.Int
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
@@ -24,17 +24,17 @@ trait T2<T> {}
trait Test<!CONSTRUCTOR_IN_TRAIT!>()<!> {
}
trait Test1 : C2<!SUPERTYPE_INITIALIZED_IN_TRAIT!>()<!> {}
trait Test1 : <!TRAIT_WITH_SUPERCLASS!>C2<!><!SUPERTYPE_INITIALIZED_IN_TRAIT!>()<!> {}
trait Test2 : C2 {}
trait Test2 : <!TRAIT_WITH_SUPERCLASS!>C2<!> {}
trait Test3 : C2, <!MANY_CLASSES_IN_SUPERTYPE_LIST!>C3<!> {}
trait Test3 : <!TRAIT_WITH_SUPERCLASS!>C2<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST!>C3<!> {}
trait Test4 : T1 {}
trait Test5 : T1, <!SUPERTYPE_APPEARS_TWICE!>T1<!> {}
trait Test6 : <!FINAL_SUPERTYPE!>C1<!> {}
trait Test6 : <!TRAIT_WITH_SUPERCLASS, FINAL_SUPERTYPE!>C1<!> {}
class CTest1() : OC1() {}
@@ -1,4 +1,4 @@
trait MyTrait: <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>Object<!> {
trait MyTrait: <!PLATFORM_CLASS_MAPPED_TO_KOTLIN, TRAIT_WITH_SUPERCLASS!>Object<!> {
override fun toString(): String
public override fun finalize()
public <!OVERRIDING_FINAL_MEMBER!>override<!> fun wait()
@@ -2,6 +2,6 @@ open class C {
val x = 1
}
trait Tr : C {
trait Tr : <!TRAIT_WITH_SUPERCLASS!>C<!> {
<!ACCIDENTAL_OVERRIDE!>fun getX()<!> = 1
}
@@ -1,4 +1,5 @@
trait X: Any<!NULLABLE_SUPERTYPE!>?<!><!REDUNDANT_NULLABLE!>?<!> {
trait A
trait X: A<!NULLABLE_SUPERTYPE!>?<!><!REDUNDANT_NULLABLE!>?<!> {
}
@@ -2,7 +2,13 @@ package
internal fun </*0*/ T> interaction(/*0*/ t: T): kotlin.Unit
internal trait X {
internal trait 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
}
internal trait X : 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
@@ -6,6 +6,6 @@ open class Bbb() : Aaa() {
override fun foo() = 2
}
trait Ccc : Aaa
trait Ccc : <!TRAIT_WITH_SUPERCLASS!>Aaa<!>
class Ddd() : Bbb(), Ccc
@@ -4,7 +4,7 @@ open class AL {
fun get(i : Int) : Any? = i
}
trait ALE<T> : AL {
trait ALE<T> : <!TRAIT_WITH_SUPERCLASS!>AL<!> {
fun getOrNull(index: Int, value: T) : T {
return <!UNCHECKED_CAST!>get(index) as? T<!> ?: value
}
@@ -2,7 +2,7 @@ open class A {
open fun foo() {}
}
trait ATrait : A {
trait ATrait : <!TRAIT_WITH_SUPERCLASS!>A<!> {
override fun foo() {
<!SUPERCLASS_NOT_ACCESSIBLE_FROM_TRAIT!>super<A><!>.foo()
@@ -1,6 +1,6 @@
open class Required
trait Trait : Required
trait Trait : <!TRAIT_WITH_SUPERCLASS!>Required<!>
abstract <!UNMET_TRAIT_REQUIREMENT!>class Abstract<!> : Trait
@@ -1,6 +1,6 @@
open class Required
trait A : Required
trait A : <!TRAIT_WITH_SUPERCLASS!>Required<!>
val a = <!UNMET_TRAIT_REQUIREMENT!>object<!> : A {}
val b: A = object : A, Required() {}
@@ -1,8 +1,8 @@
open class Generic<T>
trait A : Generic<Int>
trait A : <!TRAIT_WITH_SUPERCLASS!>Generic<Int><!>
trait B : Generic<String>
trait B : <!TRAIT_WITH_SUPERCLASS!>Generic<String><!>
<!UNMET_TRAIT_REQUIREMENT, UNMET_TRAIT_REQUIREMENT!>class Y<!> : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>A, B<!>
class Z : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>A, B, Generic<Int>()<!>
@@ -1,7 +1,7 @@
open class Base {
}
trait Derived: Base {
trait Derived: <!TRAIT_WITH_SUPERCLASS!>Base<!> {
fun foo() {
f1(this@Derived)
}
@@ -1,4 +1,4 @@
open class A
open class B
trait C : A, <!MANY_CLASSES_IN_SUPERTYPE_LIST!>B<!>
trait C : <!TRAIT_WITH_SUPERCLASS!>A<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST!>B<!>
@@ -1,12 +1,12 @@
open class Required
trait A : Required
trait A : <!TRAIT_WITH_SUPERCLASS!>Required<!>
trait B : A, Required
trait B : A, <!TRAIT_WITH_SUPERCLASS!>Required<!>
trait C : Required
trait C : <!TRAIT_WITH_SUPERCLASS!>Required<!>
trait D : B, Required
trait D : B, <!TRAIT_WITH_SUPERCLASS!>Required<!>
<!UNMET_TRAIT_REQUIREMENT, UNMET_TRAIT_REQUIREMENT, UNMET_TRAIT_REQUIREMENT!>class W<!> : D
class X : D, Required()
@@ -1,6 +1,6 @@
open class RequiredBase
trait Trait : RequiredBase
trait Trait : <!TRAIT_WITH_SUPERCLASS!>RequiredBase<!>
open class RequiredDerived : RequiredBase()
@@ -1,6 +1,6 @@
open class Required(val value: String)
trait First : Required
trait First : <!TRAIT_WITH_SUPERCLASS!>Required<!>
trait Second : First
@@ -1,4 +1,4 @@
trait AnyTrait : Any
trait AnyTrait : <!TRAIT_WITH_SUPERCLASS!>Any<!>
class Foo : AnyTrait
@@ -1,9 +1,9 @@
open class bar()
trait Foo<!CONSTRUCTOR_IN_TRAIT!>()<!> : bar<!SUPERTYPE_INITIALIZED_IN_TRAIT!>()<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!> {
trait Foo<!CONSTRUCTOR_IN_TRAIT!>()<!> : <!TRAIT_WITH_SUPERCLASS!>bar<!><!SUPERTYPE_INITIALIZED_IN_TRAIT!>()<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, <!MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!> {
}
trait Foo2 : bar, Foo {
trait Foo2 : <!TRAIT_WITH_SUPERCLASS!>bar<!>, Foo {
}
open class Foo1() : bar(), <!SUPERTYPE_NOT_INITIALIZED, MANY_CLASSES_IN_SUPERTYPE_LIST, SUPERTYPE_APPEARS_TWICE!>bar<!>, Foo, <!SUPERTYPE_APPEARS_TWICE!>Foo<!><!NO_CONSTRUCTOR!>()<!> {}
@@ -1,7 +1,7 @@
open class Generic<T>
trait A : Generic<String>
trait A : <!TRAIT_WITH_SUPERCLASS!>Generic<String><!>
trait B : Generic<Int>
trait B : <!TRAIT_WITH_SUPERCLASS!>Generic<Int><!>
trait C : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>A, B<!>