diff options
Diffstat (limited to 'sources/scala/tools/scalac/ast/TreeList.scala')
-rw-r--r-- | sources/scala/tools/scalac/ast/TreeList.scala | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sources/scala/tools/scalac/ast/TreeList.scala b/sources/scala/tools/scalac/ast/TreeList.scala index 5dc3dda7a5..198e4fdbbd 100644 --- a/sources/scala/tools/scalac/ast/TreeList.scala +++ b/sources/scala/tools/scalac/ast/TreeList.scala @@ -14,7 +14,7 @@ package scala.tools.scalac.ast { /** List of trees. */ -final class TreeList(ts: Array[Tree]) { +final class TreeList(ts: Array[Tree]) with Iterable[Tree] { private var trees = ts; private var len = ts.length; @@ -47,6 +47,14 @@ final class TreeList(ts: Array[Tree]) { len = 0; } + def elements = new Iterator[Tree] { // don't change treelist while iterating! + private var i = 0; + def hasNext: Boolean = i < len; + def next: Tree = + if (i < len) { val x = trees(i) ; i = i + 1 ; x } + else error("next on empty iterator"); + } + def length(): int = len; def get(i: int): Tree = trees(i); |