diff options
author | Martin Odersky <odersky@gmail.com> | 2010-03-01 14:35:58 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2010-03-01 14:35:58 +0000 |
commit | 3aa1da6596f684ec8cce46d7bf1a6abf887e06f0 (patch) | |
tree | f9b1015692c2f731e7e5bd05db8bc8a6ab22bc78 | |
parent | 6fa82c014c5dd4bc560e0fdd563102f9af7b1ed9 (diff) | |
download | scala-3aa1da6596f684ec8cce46d7bf1a6abf887e06f0.tar.gz scala-3aa1da6596f684ec8cce46d7bf1a6abf887e06f0.tar.bz2 scala-3aa1da6596f684ec8cce46d7bf1a6abf887e06f0.zip |
Added missing file that broke the build.
-rwxr-xr-x | src/library/scala/collection/immutable/DefaultMap.scala | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/library/scala/collection/immutable/DefaultMap.scala b/src/library/scala/collection/immutable/DefaultMap.scala new file mode 100755 index 0000000000..7ee8197150 --- /dev/null +++ b/src/library/scala/collection/immutable/DefaultMap.scala @@ -0,0 +1,53 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id: DefaultMap.scala 20028 2009-12-07 11:49:19Z cunei $ + + +package scala.collection +package immutable + +import generic._ + +/** <p> + * A default map which implements the <code>updated</code> and <code>-</code> + * methods of maps.<br/> + * Instances that inherit from <code>DefaultMap[A, B]</code> still have to + * define: + * </p><pre> + * <b>def</b> get(key: A): Option[B] + * <b>def</b> iterator: Iterator[(A, B)]</pre> + * <p> + * It refers back to the original map. + * </p> + * <p> + * It might also be advisable to override <code>foreach</code> or + * <code>size</code> if efficient implementations can be found. + * </p> + * + * @since 2.8 + */ +trait DefaultMap[A, +B] extends Map[A, B] { self => + + /** A default implementation which creates a new immutable map. + */ + override def +[B1 >: B](kv: (A, B1)): Map[A, B1] = { + val b = Map.newBuilder[A, B1] + b ++= this + b += ((kv._1, kv._2)) + b.result + } + + /** A default implementation which creates a new immutable map. + */ + override def - (key: A): Map[A, B] = { + val b = newBuilder + b ++= this filter (key !=) + b.result + } +} |