Navigation to iterator(), next(), hasNext() through 'in' in for-loops

This commit is contained in:
Andrey Breslav
2013-08-28 14:39:45 +04:00
parent 6fcccff31b
commit a53986e1d6
11 changed files with 260 additions and 1 deletions
@@ -0,0 +1,8 @@
fun main(it: Iterator<Any>) {
for (i <caret>in it.iterator()) {}
}
// MULTIRESOLVE
// REF: (for Iterator<T> in jet).iterator()
// REF: (in jet.Iterator).hasNext()
// REF: (in jet.Iterator).next()
@@ -0,0 +1,8 @@
fun main() {
for (i <caret>in 1..2) {}
}
// MULTIRESOLVE
// REF: (in jet.IntIterator).next()
// REF: (in jet.IntRange).iterator()
// REF: (in jet.Iterator).hasNext()
@@ -0,0 +1,8 @@
fun main() {
for (i <caret>in "") {}
}
// MULTIRESOLVE
// REF: (for jet.CharSequence in kotlin).iterator()
// REF: (in jet.CharIterator).next()
// REF: (in jet.Iterator).hasNext()
@@ -0,0 +1,16 @@
fun test(f: Foo) {
for(i <caret>in f) {}
}
trait Foo
fun Foo.iterator(): Iterator
trait Iterator
fun Iterator.next(): Any
fun Iterator.hasNext(): Boolean
// MULTIRESOLVE
// REF: (for Foo in <root>).iterator()
// REF: (for Iterator in <root>).next()
// REF: (for Iterator in <root>).hasNext()
@@ -0,0 +1,17 @@
fun test(f: Foo) {
for(i <caret>in f) {}
}
trait Foo {
fun iterator(): Iterator
}
trait Iterator {
fun next(): Any
fun hasNext(): Boolean
}
// MULTIRESOLVE
// REF: (in Foo).iterator()
// REF: (in Iterator).next()
// REF: (in Iterator).hasNext()
@@ -0,0 +1,15 @@
fun test(f: Foo) {
for(i <caret>in f) {}
}
trait Foo {
fun iterator(): Iterator
}
trait Iterator {
fun hasNext(): Boolean
}
// MULTIRESOLVE
// REF: (in Foo).iterator()
// REF: (in Iterator).hasNext()
@@ -0,0 +1,7 @@
fun test() {
for (x <caret>in Y()) {}
}
class Y
// REF_EMPTY