summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-09-20 10:36:52 -0700
committerPaul Phillips <paulp@improving.org>2012-09-20 10:36:52 -0700
commitfeb77881ff8bc1e46c8ae4317a9d95cbf97e34bd (patch)
tree863f8040d187378324d44cec07700ccabd12f294
parent95f77f00656bc35b8285338a4771e0a24b845826 (diff)
parentda29b3f4d4a8dd30fa08f398bbb9f12b5e2a7e16 (diff)
downloadscala-feb77881ff8bc1e46c8ae4317a9d95cbf97e34bd.tar.gz
scala-feb77881ff8bc1e46c8ae4317a9d95cbf97e34bd.tar.bz2
scala-feb77881ff8bc1e46c8ae4317a9d95cbf97e34bd.zip
Merge pull request #1252 from mt2309/master
Remove extraneous null check in RedBlackTree
-rw-r--r--src/library/scala/collection/immutable/RedBlackTree.scala22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/library/scala/collection/immutable/RedBlackTree.scala b/src/library/scala/collection/immutable/RedBlackTree.scala
index bb489dd80a..328d929fb9 100644
--- a/src/library/scala/collection/immutable/RedBlackTree.scala
+++ b/src/library/scala/collection/immutable/RedBlackTree.scala
@@ -74,17 +74,23 @@ object RedBlackTree {
result
}
- def foreach[A, B, U](tree: Tree[A, B], f: ((A, B)) => U): Unit = if (tree ne null) {
- if (tree.left ne null) foreach(tree.left, f)
+
+ def foreach[A,B,U](tree:Tree[A,B], f:((A,B)) => U):Unit = if (tree ne null) _foreach(tree,f)
+
+ private[this] def _foreach[A, B, U](tree: Tree[A, B], f: ((A, B)) => U) {
+ if (tree.left ne null) _foreach(tree.left, f)
f((tree.key, tree.value))
- if (tree.right ne null) foreach(tree.right, f)
- }
- def foreachKey[A, U](tree: Tree[A, _], f: A => U): Unit = if (tree ne null) {
- if (tree.left ne null) foreachKey(tree.left, f)
- f(tree.key)
- if (tree.right ne null) foreachKey(tree.right, f)
+ if (tree.right ne null) _foreach(tree.right, f)
}
+
+ def foreachKey[A, U](tree:Tree[A,_], f: A => U):Unit = if (tree ne null) _foreachKey(tree,f)
+ private[this] def _foreachKey[A, U](tree: Tree[A, _], f: A => U) {
+ if (tree.left ne null) _foreachKey(tree.left, f)
+ f((tree.key))
+ if (tree.right ne null) _foreachKey(tree.right, f)
+ }
+
def iterator[A, B](tree: Tree[A, B]): Iterator[(A, B)] = new EntriesIterator(tree)
def keysIterator[A, _](tree: Tree[A, _]): Iterator[A] = new KeysIterator(tree)
def valuesIterator[_, B](tree: Tree[_, B]): Iterator[B] = new ValuesIterator(tree)