summaryrefslogtreecommitdiff
path: root/sources/scala/tools/scalac/ast/TreeList.scala
diff options
context:
space:
mode:
Diffstat (limited to 'sources/scala/tools/scalac/ast/TreeList.scala')
-rw-r--r--sources/scala/tools/scalac/ast/TreeList.scala10
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);