blob: 036eb71f713b9f44947e653c154b357a857c6fbf [file] [log] [blame]
// TARGET_BACKEND: JVM
// FILE: J.java
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class J extends MyList {
@Override
public int getSize() {
return 55;
}
@Override
public int lastIndexOf(String s) {
return 0;
}
@Override
public int indexOf(String s) {
return 0;
}
@Override
public boolean contains(String s) {
return true;
}
@Override
public boolean isEmpty() {
return false;
}
@NotNull
@Override
public Iterator<String> iterator() {
return null;
}
@Override
public boolean containsAll(Collection<?> c) {
return false;
}
@Override
public String get(int index) {
return null;
}
@Override
public List<String> subList(int i, int i1) {
return super.subList(i, i1);
}
@Override
public ListIterator<String> listIterator(int i) {
return super.listIterator(i);
}
@Override
public ListIterator<String> listIterator() {
return super.listIterator();
}
}
// FILE: test.kt
abstract class MyList : List<String>
class ListImpl : J() {
override val size: Int get() = super.size + 1
}
fun box(): String {
val impl = ListImpl()
if (impl.size != 56) return "fail 1"
if (!impl.contains("abc")) return "fail 2"
val l: List<String> = impl
if (l.size != 56) return "fail 3"
if (!l.contains("abc")) return "fail 4"
val anyList: List<Any?> = impl as List<Any?>
if (anyList.size != 56) return "fail 5"
if (!anyList.contains("abc")) return "fail 6"
if (anyList.contains(1)) return "fail 7"
if (anyList.contains(null)) return "fail 8"
return "OK"
}