mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
98 lines
1.8 KiB
Kotlin
Vendored
98 lines
1.8 KiB
Kotlin
Vendored
// 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"
|
|
}
|