diff --git a/launch/ListMap.scala b/launch/ListMap.scala index 0239c5320..eac3dfd89 100644 --- a/launch/ListMap.scala +++ b/launch/ListMap.scala @@ -8,7 +8,7 @@ import scala.collection.{Iterable, Iterator} import scala.collection.immutable.List // preserves iteration order -sealed class ListMap[K,V] private(backing: List[(K,V)]) extends Traversable[(K,V)] with NotNull +sealed class ListMap[K,V] private(backing: List[(K,V)]) extends Iterable[(K,V)] with NotNull // use Iterable because Traversable.toStream loops { import ListMap.remove def update(k: K, v: V) = this.+( (k,v) ) @@ -18,7 +18,7 @@ sealed class ListMap[K,V] private(backing: List[(K,V)]) extends Traversable[(K,V def keys: List[K] = backing.reverse.map(_._1) def apply(k: K): V = get(k).getOrElse(error("Key " + k + " not found")) def contains(k: K): Boolean = get(k).isDefined - def foreach[T](f: ((K,V)) => T) = backing.reverse.foreach(f) + def iterator = backing.reverse.iterator override def isEmpty: Boolean = backing.isEmpty override def toList = backing.reverse override def toSeq = toList diff --git a/launch/src/test/scala/ListMapTest.scala b/launch/src/test/scala/ListMapTest.scala index 820371c69..53ea7252c 100644 --- a/launch/src/test/scala/ListMapTest.scala +++ b/launch/src/test/scala/ListMapTest.scala @@ -35,4 +35,5 @@ object ListMapEmpty extends Properties("ListMap.empty") property("toSeq.isEmpty") = empty.toSeq.isEmpty property("toStream.isEmpty") = empty.toStream.isEmpty property("keys.isEmpty") = empty.keys.isEmpty + property("iterator.isEmpty") = empty.iterator.isEmpty } \ No newline at end of file diff --git a/launch/src/test/scala/ScalaProviderTest.scala b/launch/src/test/scala/ScalaProviderTest.scala index 076f8cce2..83bd377ba 100644 --- a/launch/src/test/scala/ScalaProviderTest.scala +++ b/launch/src/test/scala/ScalaProviderTest.scala @@ -74,7 +74,7 @@ object LaunchTest def mapScalaVersion(versionNumber: String) = scalaVersionMap.find(_._2 == versionNumber).getOrElse { error("Scala version number " + versionNumber + " from library.properties has no mapping")}._1 - val scalaVersionMap = Map( ("2.7.2", "2.7.2") ) ++ List("2.7.3", "2.7.4", "2.7.5", "2.7.6", "2.7.7").map(v => (v, v + ".final")) + val scalaVersionMap = List("2.7.2", "2.8.0.RC4").map(x => (x,x)).toMap ++ List("2.7.3", "2.7.4", "2.7.5", "2.7.6", "2.7.7").map(v => (v, v + ".final")) def getScalaVersion: String = getScalaVersion(getClass.getClassLoader) def getScalaVersion(loader: ClassLoader): String = loadProperties(loader, "library.properties").getProperty("version.number") lazy val AppVersion = loadProperties(getClass.getClassLoader, "xsbt.version.properties").getProperty("version")