diff options
author | Martin Odersky <odersky@gmail.com> | 2011-09-23 16:21:16 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-09-23 16:21:16 +0000 |
commit | 2b699c3fdb8586051fa20cc1e37d4d40a7418605 (patch) | |
tree | 31b1605a95eb096586256089b7bdd1cfcf5b55c3 /src/compiler/scala/reflect/internal/Symbols.scala | |
parent | 7bfdac0b73c28109b5d3130783feaca4a7c06100 (diff) | |
download | scala-2b699c3fdb8586051fa20cc1e37d4d40a7418605.tar.gz scala-2b699c3fdb8586051fa20cc1e37d4d40a7418605.tar.bz2 scala-2b699c3fdb8586051fa20cc1e37d4d40a7418605.zip |
Handling Freevars in Importers and discovering ...
Handling Freevars in Importers and discovering whole new classes of
errors in Liftcode.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r-- | src/compiler/scala/reflect/internal/Symbols.scala | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala index b459c64978..fcf70e5825 100644 --- a/src/compiler/scala/reflect/internal/Symbols.scala +++ b/src/compiler/scala/reflect/internal/Symbols.scala @@ -2348,6 +2348,17 @@ trait Symbols extends api.Symbols { self: SymbolTable => override def sourceModule_=(module: Symbol) { this.module = module } } + class FreeVar(name: TermName, tpe: Type, val value: Any) extends TermSymbol(definitions.RootClass, NoPosition, name) { + setInfo(tpe) + + override def hashCode = value.hashCode + + override def equals(other: Any): Boolean = other match { + case that: FreeVar => this.value.asInstanceOf[AnyRef] eq that.value.asInstanceOf[AnyRef] + case _ => false + } + } + /** An object representing a missing symbol */ object NoSymbol extends Symbol(null, NoPosition, nme.NO_NAME) { setInfo(NoType) |