Remove tests on RTTI

It was never implemented
This commit is contained in:
Alexander Udalov
2013-01-23 21:03:56 +04:00
committed by Alexander Udalov
parent 0df71bd696
commit de37f73c8d
19 changed files with 10 additions and 481 deletions
@@ -1,13 +0,0 @@
abstract open class Default {
abstract fun defaultValue(): Int
}
class MyInt() {
class object : Default() {
override fun defaultValue(): Int = 610
}
}
fun toDefault<T: Any>(t: T) where class object T: Default = T.defaultValue()
fun box(): String = if (toDefault<MyInt>(MyInt()) == 610) "OK" else "fail"
@@ -1,10 +0,0 @@
class X<T> () {
fun getTypeChecker() = { (a : Any) -> a is T }
}
fun box() : String {
val c = X<String>().getTypeChecker()
if(c(10)) return "fail"
if(!c("lala")) return "fail"
return "OK"
}
@@ -1,7 +0,0 @@
class A
fun box():String {
System.out?.println(typeinfo("foo" as String?))
System.out?.println(typeinfo("foo"))
return "OK"
}
@@ -1,250 +0,0 @@
class A() {}
open class B<T>() {
fun isT (a : Any?) : Boolean {
return a is T
}
}
class C() : B<String>() {
}
class D<T>() : B<B<T>>() {
}
fun t1() : Boolean {
val a = A()
if(a !is A) return false
return true
}
fun t2() : Boolean {
val a = A()
if(a !is A?) return false
return true
}
fun t3() : Boolean {
val a = A()
if(null !is A?) return false
return true
}
fun t4 () : Boolean {
val b = B<String>()
if(b !is B<String>) return false
return true
}
fun t5 () : Boolean {
val b = B<String>()
if(b !is B<String>?) return false
return true
}
fun t6 () : Boolean {
if(null !is B<String>?) return false
return true
}
fun t7 () : Boolean {
val b = B<String>()
if(!b.isT("aaa")) return false
return true
}
fun t8 () : Boolean {
val b = B<String>()
if(b.isT(10)) return false
return true
}
fun t9 () : Boolean {
val b = B<String>()
if(b.isT(null)) return false
return true
}
fun t10 () : Boolean {
val d = B<String?>()
if(!d.isT("aaa")) return false
return true
}
fun t11 () : Boolean {
val d = B<String?>()
if(d.isT(10)) return false
return true
}
fun t12 () : Boolean {
val d = B<String?>()
if(!d.isT(null)) return false
return true
}
fun t13 () : Boolean {
val f = B<java.lang.String?>()
if(!f.isT("aaa")) return false
return true
}
fun t14 () : Boolean {
val f = B<java.lang.String?>()
if(f.isT(10)) return false
return true
}
fun t15 () : Boolean {
val f = B<java.lang.String?>()
if(!f.isT(null)) return false
return true
}
fun t16 () : Boolean {
val c = B<Int>()
if(c.isT("aaa")) return false
return true
}
fun t17 () : Boolean {
val c = B<Int>()
if(!c.isT(10)) return false
return true
}
fun t18 () : Boolean {
val c = B<Int>()
if(c.isT(null)) return false
return true
}
fun t19 () : Boolean {
val e = B<Int?>()
if(e.isT("aaa")) return false
return true
}
fun t20 () : Boolean {
val e = B<Int?>()
if(!e.isT(10)) return false
return true
}
fun t21 () : Boolean {
val e = B<Int?>()
if(!e.isT(null)) return false
return true
}
fun t22 () : Boolean {
val b = B<String>()
val w : B<String>? = b as B<String> //ok
val x = w as B<String>? //TypeCastException
return true
}
fun t23 () : Boolean {
val b = B<String>()
val v = b as B<String> //ok
return true
}
fun t24 () : Boolean {
val b = B<String>()
val u = b as B<String>? //TypeCastException
return true
}
fun t25 () : Boolean {
val c = C()
if(!c.isT("aaa")) return false
return true
}
fun t26 () : Boolean {
val d = D<String>()
if(!d.isT(B<String>())) return false
return true
}
fun box() : String {
if(!t1()) {
return "t1 failed"
}
if(!t2()) {
return "t2 failed"
}
if(!t3()) {
return "t3 failed"
}
if(!t4()) {
return "t4 failed"
}
if(!t5()) {
return "t5 failed"
}
if(!t6()) {
return "t6 failed"
}
if(!t7()) {
return "t7 failed"
}
if(!t8()) {
return "t8 failed"
}
if(!t9()) {
return "t9 failed"
}
if(!t10()) {
return "t10 failed"
}
if(!t11()) {
return "t11 failed"
}
if(!t12()) {
return "t12 failed"
}
if(!t13()) {
return "t13 failed"
}
if(!t14()) {
return "t14 failed"
}
if(!t15()) {
return "t15 failed"
}
if(!t16()) {
return "t16 failed"
}
if(!t17()) {
return "t17 failed"
}
if(!t18()) {
return "t18 failed"
}
if(!t19()) {
return "t19 failed"
}
if(!t20()) {
return "t10 failed"
}
if(!t21()) {
return "t21 failed"
}
if(!t22()) {
return "t22 failed"
}
if(!t23()) {
return "t23 failed"
}
if(!t24()) {
return "t24 failed"
}
if(!t25()) {
return "t25 failed"
}
if(!t26()) {
return "t26 failed"
}
return "OK"
}
@@ -1,7 +1,10 @@
import java.io.*
fun main(args: Array<String>) {
fun foo(args: Array<String>) {
val reader = BufferedReader(InputStreamReader(System.`in`))
while(true) {
val cmd = reader.readLine() as String
}
}
fun box() = "OK"
@@ -1,8 +0,0 @@
class Wrapper<T>() {
fun castToSelf(wrapper: Any) : Wrapper<T>? = wrapper as? Wrapper<T>
}
fun foo() : Wrapper<Int>? {
val wrapper = Wrapper<Int>()
return wrapper.castToSelf(Wrapper<String>())
}
@@ -1,7 +0,0 @@
class Point() {
class object {
fun foo(): String = "bar"
}
}
fun foo() = Point()
@@ -1,12 +0,0 @@
class Foo() { }
class Bar() { }
fun isInstance<T>(obj: Any?) = obj is T
fun isInstance2<T>(obj: Any?) = isInstance<T>(obj)
fun box(): String {
if (! isInstance2<Foo>(Foo())) return "fail 1"
if (isInstance2<Bar>(Foo())) return "fail 2"
return "OK"
}
@@ -1,10 +0,0 @@
class Foo() { }
class Bar() { }
fun isInstance<T>(obj: Any?) = obj is T
fun box(): String {
if (! isInstance<Foo>(Foo())) return "fail 1"
if (isInstance<Bar>(Foo())) return "fail 2"
return "OK"
}
@@ -1,4 +0,0 @@
class Point() {
}
fun foo() = Point()
@@ -1,14 +0,0 @@
class Box<T>() {
open inner class Inner () {
fun isT(s : Any) = if(s is T) "OK" else "fail"
}
inner class Inner2() : Inner() {
}
fun inner() = Inner2()
}
fun box(): String {
return Box<String>().inner().isT("OK")
}
@@ -1,13 +0,0 @@
class Foo() {}
class Bar() {}
class InstanceChecker<T>() {
fun check(obj: Any?) = obj is T
}
fun box(): String {
val checker = InstanceChecker<Foo>()
if (!checker.check(Foo())) return "fail 1"
if (checker.check(Bar())) return "fail 2"
return "OK"
}
@@ -1,8 +0,0 @@
class Wrapper<T>() {
fun isSameWrapper(wrapper: Any) = wrapper is Wrapper<T>
}
fun foo() : Boolean {
val wrapper = Wrapper<Int>()
return wrapper.isSameWrapper(Wrapper<String>())
}
@@ -1,7 +0,0 @@
class Wrapper<T>() {
}
fun foo() : Boolean {
val wrapper = Wrapper<Int>()
return wrapper is Wrapper<String>
}
@@ -1,13 +0,0 @@
class Box<T>(t: T) {
var value = t
}
fun box(): String {
val nullableBox = Box<String?>("")
val notnullBox = Box<String>("")
if (nullableBox is Box<String>) return "fail 1"
if (notnullBox is Box<String?>) return "fail 2"
if (nullableBox !is Box<String?>) return "fail 3"
if (notnullBox !is Box<String>) return "fail 4"
return "OK"
}
@@ -1,7 +0,0 @@
class Point() {
}
fun foo() : TypeInfo<Point> {
val p = Point();
return typeinfo<Point>(p);
}