summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library/scala/Symbol.scala8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/library/scala/Symbol.scala b/src/library/scala/Symbol.scala
index 112764a223..6110fa07dd 100644
--- a/src/library/scala/Symbol.scala
+++ b/src/library/scala/Symbol.scala
@@ -13,7 +13,7 @@ package scala
import scala.collection.jcl
-private[scala] object internedSymbols extends jcl.HashMap[String, ref.WeakReference[Symbol]]
+private[scala] object internedSymbols extends jcl.WeakHashMap[Symbol, ref.WeakReference[Symbol]]
/** <p>
* Instances of <code>Symbol</code> can be created easily with
@@ -47,10 +47,10 @@ final case class Symbol(name: String) {
*
* @return the unique reference to this symbol.
*/
- def intern: Symbol = synchronized {
- internedSymbols.get(name).map(.get).getOrElse(None) match {
+ def intern: Symbol = internedSymbols.synchronized {
+ internedSymbols.get(this).map(.get).getOrElse(None) match {
case Some(sym) => sym
case _ =>
- internedSymbols(name) = new ref.WeakReference(this); this
+ internedSymbols(this) = new ref.WeakReference(this); this
} }
}