summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Vigdorchik <eugenevigdorchik@epfl.ch>2010-11-08 13:33:12 +0000
committerEugene Vigdorchik <eugenevigdorchik@epfl.ch>2010-11-08 13:33:12 +0000
commit7f8ccd778d34016e6fb63b218524783da3916573 (patch)
tree62d464130c029a75bf58cc82cb603c663ddc63e5
parentb10ba655d5a3c127ffc4332ebb1e7198da3f9294 (diff)
downloadscala-7f8ccd778d34016e6fb63b218524783da3916573.tar.gz
scala-7f8ccd778d34016e6fb63b218524783da3916573.tar.bz2
scala-7f8ccd778d34016e6fb63b218524783da3916573.zip
Proper fix for adaptToNewRun for toplevel class...
Proper fix for adaptToNewRun for toplevel classes; if the compiler is running after flatten, then nothing to adapt
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index 11f1385baa..6a91286c73 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -3789,12 +3789,14 @@ A type's typeSymbol should never be inspected directly.
object adaptToNewRunMap extends TypeMap {
private def adaptToNewRun(pre: Type, sym: Symbol): Symbol = {
- if (sym.isModuleClass && !phase.flatClasses) {
+ if (phase.flatClasses) {
+ sym
+ } else if (sym.isModuleClass) {
if (!sym.owner.isPackageClass)
sym // Nested lazy object
else
adaptToNewRun(pre, sym.sourceModule).moduleClass
- } else if ((pre eq NoPrefix) || (pre eq NoType) || sym.owner.isPackageClass) {
+ } else if ((pre eq NoPrefix) || (pre eq NoType) || sym.isPackageClass) {
sym
} else {
var rebind0 = pre.findMember(sym.name, BRIDGE, 0, true)
@@ -3833,7 +3835,7 @@ A type's typeSymbol should never be inspected directly.
}
}
def apply(tp: Type): Type = tp match {
- case ThisType(sym)/* if (sym.isModuleClass)*/ =>
+ case ThisType(sym) =>
val sym1 = adaptToNewRun(sym.owner.thisType, sym)
if (sym1 == sym) tp else ThisType(sym1)
case SingleType(pre, sym) =>