diff options
author | Paul Phillips <paulp@improving.org> | 2009-06-09 15:11:27 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-06-09 15:11:27 +0000 |
commit | f85a6749de6502d4138b4f6013286088c330d74f (patch) | |
tree | 02391b6a0ad3e5d96e36166a31b6bd33c29dab29 /src/library/scala/Range.scala | |
parent | 5fa3710faaa8c1f5ae0899ec5b88abca3941d0c9 (diff) | |
download | scala-f85a6749de6502d4138b4f6013286088c330d74f.tar.gz scala-f85a6749de6502d4138b4f6013286088c330d74f.tar.bz2 scala-f85a6749de6502d4138b4f6013286088c330d74f.zip |
A couple findbugs inspired bugfixes, and a new ...
A couple findbugs inspired bugfixes, and a new trait
scala.util.Hashable, now used by GenericRange.
Diffstat (limited to 'src/library/scala/Range.scala')
-rw-r--r-- | src/library/scala/Range.scala | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/library/scala/Range.scala b/src/library/scala/Range.scala index 3c8138fb87..d7ee1d7a38 100644 --- a/src/library/scala/Range.scala +++ b/src/library/scala/Range.scala @@ -13,6 +13,7 @@ package scala import collection.immutable.Vector import collection.generic.VectorView import util.control.Exception.catching +import util.Hashable /** <p> * <code>GenericRange</code> is a generified version of the @@ -36,7 +37,7 @@ import util.control.Exception.catching abstract class GenericRange[T] (val start: T, val end: T, val step: T, val isInclusive: Boolean = false) (implicit num: Integral[T]) -extends VectorView[T, Vector[T]] with RangeToString[T] { +extends VectorView[T, Vector[T]] with RangeToString[T] with Hashable { import num._ // todo? - we could lift the length restriction by implementing a range as a sequence of @@ -109,6 +110,13 @@ extends VectorView[T, Vector[T]] with RangeToString[T] { catching(classOf[ClassCastException]) opt doContains getOrElse super.contains(_x) } + + // Using trueEnd gives us Range(1, 10, 1).inclusive == Range(1, 11, 1) + val hashValues = List(start, trueEnd, step) + override def equals(other: Any) = other match { + case x: GenericRange[_] => this equalHashValues x + case _ => false + } } private[scala] trait RangeToString[T] extends VectorView[T, Vector[T]] { |