82 lines
1.6 KiB
Plaintext
82 lines
1.6 KiB
Plaintext
import java.util.*;
|
|
|
|
class NotRange1() {
|
|
|
|
}
|
|
|
|
abstract class NotRange2() {
|
|
abstract fun iterator() : Unit
|
|
}
|
|
|
|
abstract class ImproperIterator1 {
|
|
abstract fun hasNext() : Boolean
|
|
}
|
|
|
|
abstract class NotRange3() {
|
|
abstract fun iterator() : ImproperIterator1
|
|
}
|
|
|
|
abstract class ImproperIterator2 {
|
|
abstract fun next() : Boolean
|
|
}
|
|
|
|
abstract class NotRange4() {
|
|
abstract fun iterator() : ImproperIterator2
|
|
}
|
|
|
|
abstract class ImproperIterator3 {
|
|
abstract fun hasNext() : Int
|
|
abstract fun next() : Int
|
|
}
|
|
|
|
abstract class NotRange5() {
|
|
abstract fun iterator() : ImproperIterator3
|
|
}
|
|
|
|
abstract class AmbiguousHasNextIterator {
|
|
abstract fun hasNext() : Boolean
|
|
val hasNext : Boolean get() = false
|
|
abstract fun next() : Int
|
|
}
|
|
|
|
abstract class NotRange6() {
|
|
abstract fun iterator() : AmbiguousHasNextIterator
|
|
}
|
|
|
|
abstract class ImproperIterator4 {
|
|
val hasNext : Int get() = 1
|
|
abstract fun next() : Int
|
|
}
|
|
|
|
abstract class NotRange7() {
|
|
abstract fun iterator() : ImproperIterator3
|
|
}
|
|
|
|
abstract class GoodIterator {
|
|
abstract fun hasNext() : Boolean
|
|
abstract fun next() : Int
|
|
}
|
|
|
|
abstract class Range0() {
|
|
abstract fun iterator() : GoodIterator
|
|
}
|
|
|
|
abstract class Range1() {
|
|
abstract fun iterator() : Iterator<Int>
|
|
}
|
|
|
|
fun test() {
|
|
for (i in <error>NotRange1()</error>);
|
|
for (i in <error>NotRange2()</error>);
|
|
for (i in <error>NotRange3()</error>);
|
|
for (i in <error>NotRange4()</error>);
|
|
for (i in <error>NotRange5()</error>);
|
|
for (i in <error>NotRange6()</error>);
|
|
for (i in <error>NotRange7()</error>);
|
|
for (i in Range0());
|
|
for (i in Range1());
|
|
|
|
for (i in (ArrayList<Int>() : List<Int>));
|
|
}
|
|
|