Take into account irrelevant implementation of special builtins

This commit is contained in:
Denis Zharkov
2015-10-20 17:11:55 +03:00
parent d674aa1427
commit 8db206e7ff
8 changed files with 277 additions and 4 deletions

View File

@@ -0,0 +1,5 @@
import java.util.*;
public class J implements Sized {
final public int getSize() { return 123; }
}

View File

@@ -0,0 +1,34 @@
interface Sized {
val size: Int
}
class A<T> : J(), Collection<T> {
override fun isEmpty(): Boolean {
throw UnsupportedOperationException()
}
override fun contains(element: T): Boolean {
throw UnsupportedOperationException()
}
override fun iterator(): Iterator<T> {
throw UnsupportedOperationException()
}
override fun containsAll(elements: Collection<T>): Boolean {
throw UnsupportedOperationException()
}
}
fun box(): String {
val a = A<String>()
if (a.size != 123) return "fail 1"
val c: Collection<String> = a
if (c.size != 123) return "fail 2"
val sized: Sized = a
if (sized.size != 123) return "fail 3"
return "OK"
}