Introduce 'reified' instead of 'erased'

This commit is contained in:
Andrey Breslav
2012-06-05 20:05:35 +04:00
parent 0ceee0a383
commit 91606a3901
98 changed files with 158 additions and 157 deletions
@@ -1,5 +1,5 @@
namespace test
final class test.Wine</*0,r*/ in T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ in T : jet.Any?><init>(): test.Wine<T>
final class test.Wine</*0*/ in T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ in T : jet.Any?><init>(): test.Wine<T>
}
@@ -1,5 +1,5 @@
namespace test
final class test.Juice</*0,r*/ in T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ in T : jet.Any?><init>(): test.Juice<T>
final class test.Juice</*0*/ in T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ in T : jet.Any?><init>(): test.Juice<T>
}
@@ -1,5 +1,5 @@
namespace test
final class test.Beer</*0,r*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ T : jet.Any?><init>(): test.Beer<T>
final class test.Beer</*0*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ T : jet.Any?><init>(): test.Beer<T>
}
@@ -1,5 +1,5 @@
namespace test
final class test.ClassParamReferencesParam</*0,r*/ A : jet.Any?, /*1,r*/ B : A> : jet.Any {
final /*constructor*/ fun </*0,r*/ A : jet.Any?, /*1,r*/ B : A><init>(): test.ClassParamReferencesParam<A, B>
final class test.ClassParamReferencesParam</*0*/ A : jet.Any?, /*1*/ B : A> : jet.Any {
final /*constructor*/ fun </*0*/ A : jet.Any?, /*1*/ B : A><init>(): test.ClassParamReferencesParam<A, B>
}
@@ -1,5 +1,5 @@
namespace test
final class test.ClassParamReferencesParam</*0,r*/ A : jet.Any?, /*1,r*/ in B : A> : jet.Any {
final /*constructor*/ fun </*0,r*/ A : jet.Any?, /*1,r*/ in B : A><init>(): test.ClassParamReferencesParam<A, B>
final class test.ClassParamReferencesParam</*0*/ A : jet.Any?, /*1*/ in B : A> : jet.Any {
final /*constructor*/ fun </*0*/ A : jet.Any?, /*1*/ in B : A><init>(): test.ClassParamReferencesParam<A, B>
}
@@ -1,7 +1,7 @@
namespace test
final class test.ClassParamReferencesSelf</*0,r*/ A : test.TraitWithP<A>> : jet.Any {
final /*constructor*/ fun </*0,r*/ A : test.TraitWithP<A>><init>(): test.ClassParamReferencesSelf<A>
final class test.ClassParamReferencesSelf</*0*/ A : test.TraitWithP<A>> : jet.Any {
final /*constructor*/ fun </*0*/ A : test.TraitWithP<A>><init>(): test.ClassParamReferencesSelf<A>
}
abstract trait test.TraitWithP</*0,r*/ P : jet.Any?> : jet.Any {
abstract trait test.TraitWithP</*0*/ P : jet.Any?> : jet.Any {
}
@@ -1,5 +1,5 @@
namespace test
final class test.Clock</*0,r*/ A : java.lang.Number> : jet.Any {
final /*constructor*/ fun </*0,r*/ A : java.lang.Number><init>(): test.Clock<A>
final class test.Clock</*0*/ A : java.lang.Number> : jet.Any {
final /*constructor*/ fun </*0*/ A : java.lang.Number><init>(): test.Clock<A>
}
@@ -1,5 +1,5 @@
namespace test
final class test.Clock</*0,r*/ A : java.io.Serializable & java.lang.Number> : jet.Any {
final /*constructor*/ fun </*0,r*/ A : java.io.Serializable & java.lang.Number><init>(): test.Clock<A>
final class test.Clock</*0*/ A : java.io.Serializable & java.lang.Number> : jet.Any {
final /*constructor*/ fun </*0*/ A : java.io.Serializable & java.lang.Number><init>(): test.Clock<A>
}
@@ -1,5 +1,5 @@
namespace test
final class test.Clock</*0,r*/ A : java.io.Serializable> : jet.Any {
final /*constructor*/ fun </*0,r*/ A : java.io.Serializable><init>(): test.Clock<A>
final class test.Clock</*0*/ A : java.io.Serializable> : jet.Any {
final /*constructor*/ fun </*0*/ A : java.io.Serializable><init>(): test.Clock<A>
}
@@ -1,5 +1,5 @@
namespace test
final class test.Clock</*0,r*/ A : java.io.Serializable & java.lang.Number> : jet.Any {
final /*constructor*/ fun </*0,r*/ A : java.io.Serializable & java.lang.Number><init>(): test.Clock<A>
final class test.Clock</*0*/ A : java.io.Serializable & java.lang.Number> : jet.Any {
final /*constructor*/ fun </*0*/ A : java.io.Serializable & java.lang.Number><init>(): test.Clock<A>
}
@@ -1,5 +1,5 @@
namespace test
final class test.ClassTwoParams</*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?><init>(): test.ClassTwoParams<P, Q>
final class test.ClassTwoParams</*0*/ P : jet.Any?, /*1*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?, /*1*/ Q : jet.Any?><init>(): test.ClassTwoParams<P, Q>
}
@@ -1,5 +1,5 @@
namespace test
final class test.ClassTwoParams</*0,r*/ out P : jet.Any?, /*1,r*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ out P : jet.Any?, /*1,r*/ Q : jet.Any?><init>(): test.ClassTwoParams<P, Q>
final class test.ClassTwoParams</*0*/ out P : jet.Any?, /*1*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ out P : jet.Any?, /*1*/ Q : jet.Any?><init>(): test.ClassTwoParams<P, Q>
}
@@ -1,7 +1,7 @@
namespace test
abstract class test.Aaa</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.Aaa<P>
abstract class test.Aaa</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.Aaa<P>
}
final class test.Bbb : test.Aaa<java.util.Random> {
final /*constructor*/ fun <init>(): test.Bbb
@@ -1,6 +1,6 @@
namespace test
abstract trait test.Aaa</*0,r*/ P : jet.Any?> : jet.Any {
abstract trait test.Aaa</*0*/ P : jet.Any?> : jet.Any {
}
final class test.Bbb : test.Aaa<java.util.Random> {
final /*constructor*/ fun <init>(): test.Bbb
@@ -1,6 +1,6 @@
namespace test
final class test.ClassParamUsedInFun</*0,r*/ in T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ in T : jet.Any?><init>(): test.ClassParamUsedInFun<T>
final class test.ClassParamUsedInFun</*0*/ in T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ in T : jet.Any?><init>(): test.ClassParamUsedInFun<T>
final fun f(/*0*/ t: T): jet.Int
}
@@ -1,6 +1,6 @@
namespace test
final class test.ClassParamUsedInFun</*0,r*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ T : jet.Any?><init>(): test.ClassParamUsedInFun<T>
final class test.ClassParamUsedInFun</*0*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ T : jet.Any?><init>(): test.ClassParamUsedInFun<T>
final fun f(/*0*/ t: T): jet.Int
}
@@ -1,7 +1,7 @@
namespace test
open class test.Base</*0,r*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ T : jet.Any?><init>(): test.Base<T>
open class test.Base</*0*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ T : jet.Any?><init>(): test.Base<T>
final fun foo(): T
}
final class test.Inh : test.Base<jet.String> {
@@ -1,6 +1,6 @@
namespace test
abstract trait test.Bbb</*0,r*/ P : jet.Any?> : jet.Any {
abstract trait test.Bbb</*0*/ P : jet.Any?> : jet.Any {
}
final class test.ClassObjectExtendsTraitWithTP : jet.Any {
final /*constructor*/ fun <init>(): test.ClassObjectExtendsTraitWithTP
@@ -1,5 +1,5 @@
namespace test
final class test.ClassWithConstructorAndTypeParameter</*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?><init>(): test.ClassWithConstructorAndTypeParameter<P, Q>
final class test.ClassWithConstructorAndTypeParameter</*0*/ P : jet.Any?, /*1*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?, /*1*/ Q : jet.Any?><init>(): test.ClassWithConstructorAndTypeParameter<P, Q>
}
@@ -1,5 +1,5 @@
namespace test
final class test.ClassWithConstructorAndTypeParameter</*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?><init>(/*0*/ q: jet.Int): test.ClassWithConstructorAndTypeParameter<P, Q>
final class test.ClassWithConstructorAndTypeParameter</*0*/ P : jet.Any?, /*1*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?, /*1*/ Q : jet.Any?><init>(/*0*/ q: jet.Int): test.ClassWithConstructorAndTypeParameter<P, Q>
}
@@ -1,5 +1,5 @@
namespace test
final class test.ClassWithConstructorAndTypeParameter</*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?><init>(/*0*/ q: Q): test.ClassWithConstructorAndTypeParameter<P, Q>
final class test.ClassWithConstructorAndTypeParameter</*0*/ P : jet.Any?, /*1*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?, /*1*/ Q : jet.Any?><init>(/*0*/ q: Q): test.ClassWithConstructorAndTypeParameter<P, Q>
}
@@ -1,5 +1,5 @@
namespace test
final class test.ClassWithConstructorAndTypeParameter</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.ClassWithConstructorAndTypeParameter<P>
final class test.ClassWithConstructorAndTypeParameter</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.ClassWithConstructorAndTypeParameter<P>
}
@@ -1,3 +1,3 @@
package test
class OneTypeParameterErased<P, erased Q>(q: Q)
class OneTypeParameterErased<P, Q>(q: Q)
@@ -1,5 +1,5 @@
namespace test
final class test.OneTypeParameterErased</*0,r*/ P : jet.Any?, /*1*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?, /*1*/ Q : jet.Any?><init>(/*0*/ q: Q): test.OneTypeParameterErased<P, Q>
final class test.OneTypeParameterErased</*0*/ P : jet.Any?, /*1*/ Q : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?, /*1*/ Q : jet.Any?><init>(/*0*/ q: Q): test.OneTypeParameterErased<P, Q>
}
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ T : jet.Any?>f(): jet.Int
final fun </*0*/ T : jet.Any?>f(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ in T : jet.Any?>f(): jet.Int
final fun </*0*/ in T : jet.Any?>f(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ out T : jet.Any?>f(): jet.Int
final fun </*0*/ out T : jet.Any?>f(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ P : jet.Any?>funParamParam(/*0*/ a: jet.Int, /*1*/ b: P): jet.Int
final fun </*0*/ P : jet.Any?>funParamParam(/*0*/ a: jet.Int, /*1*/ b: P): jet.Int
@@ -1,3 +1,3 @@
package test
fun <erased P> funParamParam(a: Int, b: P) = 1
fun <P> funParamParam(a: Int, b: P) = 1
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ P : jet.Any?, /*1,r*/ Q : P>funParamReferencesParam(): jet.Int
final fun </*0*/ P : jet.Any?, /*1*/ Q : P>funParamReferencesParam(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ in P : jet.Any?, /*1,r*/ Q : P>funParamReferencesParam(): jet.Int
final fun </*0*/ in P : jet.Any?, /*1*/ Q : P>funParamReferencesParam(): jet.Int
@@ -4,4 +4,4 @@ abstract trait test.Bar : jet.Any {
}
abstract trait test.Foo : jet.Any {
}
final fun </*0,r*/ T : test.Bar & test.Foo>foo(): jet.Tuple0
final fun </*0*/ T : test.Bar & test.Foo>foo(): jet.Tuple0
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ A : java.lang.Number>uno(): jet.Int
final fun </*0*/ A : java.lang.Number>uno(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ A : java.io.Serializable & java.lang.Number>tres(): jet.Int
final fun </*0*/ A : java.io.Serializable & java.lang.Number>tres(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ A : java.io.Serializable>dos(): jet.Int
final fun </*0*/ A : java.io.Serializable>dos(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ A : java.io.Serializable & java.lang.Number>cuatro(): jet.Int
final fun </*0*/ A : java.io.Serializable & java.lang.Number>cuatro(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ P : jet.Any?>funParamVarargParam(/*0*/ a: jet.Int, /*1*/ vararg b: P /*jet.Array<P>*/): jet.Int
final fun </*0*/ P : jet.Any?>funParamVarargParam(/*0*/ a: jet.Int, /*1*/ vararg b: P /*jet.Array<P>*/): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?>funTwoTypeParams(): jet.Int
final fun </*0*/ P : jet.Any?, /*1*/ Q : jet.Any?>funTwoTypeParams(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final fun </*0,r*/ P : jet.Any?, /*1,r*/ in Q : jet.Any?>funTwoTypeParams(): jet.Int
final fun </*0*/ P : jet.Any?, /*1*/ in Q : jet.Any?>funTwoTypeParams(): jet.Int
@@ -1,3 +1,3 @@
namespace test
final val </*0,r*/ P : jet.Any?> P.anotherJavaClass: java.lang.Class<P>
final val </*0*/ P : jet.Any?> P.anotherJavaClass: java.lang.Class<P>
@@ -1,6 +1,6 @@
namespace test
final class test.ExtValInClass</*0,r*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ T : jet.Any?><init>(): test.ExtValInClass<T>
final class test.ExtValInClass</*0*/ T : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ T : jet.Any?><init>(): test.ExtValInClass<T>
final val jet.Int.asas: T
}
@@ -1,6 +1,6 @@
namespace test
final class test.ExtValInClass</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.ExtValInClass<P>
final class test.ExtValInClass</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.ExtValInClass<P>
final val jet.Int.asas: P?
}
@@ -1,6 +1,6 @@
namespace test
final class test.ExtValPIntInClass</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.ExtValPIntInClass<P>
final class test.ExtValPIntInClass</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.ExtValPIntInClass<P>
final val P.asas: jet.Int
}
@@ -1,3 +1,3 @@
namespace test
final var </*0,r*/ P : jet.Any?> P.anotherJavaClass: java.lang.Class<P>
final var </*0*/ P : jet.Any?> P.anotherJavaClass: java.lang.Class<P>
@@ -1,6 +1,6 @@
namespace test
final class test.ExtValInClass</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.ExtValInClass<P>
final class test.ExtValInClass</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.ExtValInClass<P>
final var jet.Int.asas: P
}
@@ -1,6 +1,6 @@
namespace test
final class test.ExtValInClass</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.ExtValInClass<P>
final class test.ExtValInClass</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.ExtValInClass<P>
final var jet.Int.asas: P?
}
@@ -1,3 +1,3 @@
namespace test
final var </*0,r*/ P : jet.Any?, /*1,r*/ Q : jet.Any?> java.util.Map<P, Q>.asas: jet.Int
final var </*0*/ P : jet.Any?, /*1*/ Q : jet.Any?> java.util.Map<P, Q>.asas: jet.Int
@@ -1,6 +1,6 @@
namespace test
final class test.ExtValPIntInClass</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.ExtValPIntInClass<P>
final class test.ExtValPIntInClass</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.ExtValPIntInClass<P>
final var P.asas: jet.Int
}
@@ -1,6 +1,6 @@
namespace test
final class test.ExtValPIntInClass</*0,r*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0,r*/ P : jet.Any?><init>(): test.ExtValPIntInClass<P>
final class test.ExtValPIntInClass</*0*/ P : jet.Any?> : jet.Any {
final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): test.ExtValPIntInClass<P>
final var P?.asas: jet.Int
}