LR: Delegation supported

This commit is contained in:
Andrey Breslav
2012-07-19 16:52:39 +04:00
parent 67900e9dfa
commit 4c71624997
2 changed files with 88 additions and 5 deletions
@@ -0,0 +1,41 @@
namespace <root>
internal open class Br : T {
public final /*constructor*/ fun <init>(/*0*/ t: T): Br
internal abstract override /*1*/ fun foo(): jet.Tuple0
internal abstract override /*1*/ val v: jet.Int
}
internal open class Br1 : T {
public final /*constructor*/ fun <init>(/*0*/ t: T): Br1
internal open override /*1*/ fun foo(): jet.Tuple0
internal open override /*1*/ val v: jet.Int
}
internal final class Br2 : Br1 {
public final /*constructor*/ fun <init>(/*0*/ t: T): Br2
internal open override /*1*/ fun foo(): jet.Tuple0
internal open override /*1*/ val v: jet.Int
}
internal final class Br3 : Br {
public final /*constructor*/ fun <init>(/*0*/ t: T): Br3
internal abstract override /*1*/ fun foo(): jet.Tuple0
internal abstract override /*1*/ val v: jet.Int
}
internal abstract trait G</*0*/ T : jet.Any?> : jet.Any {
internal abstract fun foo(/*0*/ t: T): T
}
internal final class GC : G<jet.Int> {
public final /*constructor*/ fun <init>(): GC
internal abstract override /*1*/ fun foo(/*0*/ t: jet.Int): jet.Int
}
internal open class GC1 : G<jet.Int> {
public final /*constructor*/ fun <init>(/*0*/ g: G<jet.Int>): GC1
internal open override /*1*/ fun foo(/*0*/ t: jet.Int): jet.Int
}
internal open class GC2 : GC1 {
public final /*constructor*/ fun <init>(/*0*/ g: G<jet.Int>): GC2
internal open override /*1*/ fun foo(/*0*/ t: jet.Int): jet.Int
}
internal abstract trait T : jet.Any {
internal abstract fun foo(): jet.Tuple0
internal abstract val v: jet.Int
}