diff options
author | Paul Phillips <paulp@improving.org> | 2012-04-06 11:58:15 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-04-06 12:37:00 -0700 |
commit | 9b67137252b985e998229658082dfb026fcfa840 (patch) | |
tree | 7c7fa6be12963a49e3ca422fd215995f06e09df2 /src/compiler/scala/tools/nsc | |
parent | 8e179506e7c230a9ff01cda9584ce2a73953e446 (diff) | |
parent | b5a01906f6ad15745710e461af0676dc0506814f (diff) | |
download | scala-9b67137252b985e998229658082dfb026fcfa840.tar.gz scala-9b67137252b985e998229658082dfb026fcfa840.tar.bz2 scala-9b67137252b985e998229658082dfb026fcfa840.zip |
Merge branch 'apr6-flags' of leaf:/scala/trunk into develop
Diffstat (limited to 'src/compiler/scala/tools/nsc')
5 files changed, 15 insertions, 10 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/DocComments.scala b/src/compiler/scala/tools/nsc/ast/DocComments.scala index d3f4688d4b..4c7083a51f 100755 --- a/src/compiler/scala/tools/nsc/ast/DocComments.scala +++ b/src/compiler/scala/tools/nsc/ast/DocComments.scala @@ -523,10 +523,9 @@ trait DocComments { self: Global => } for (defn <- defined) yield { - val useCase = defn.cloneSymbol - useCase.owner = sym.owner - useCase.flags = sym.flags - useCase.setFlag(Flags.SYNTHETIC).setInfo(substAliases(defn.info).asSeenFrom(site.thisType, sym.owner)) + defn.cloneSymbol(sym.owner, sym.flags | Flags.SYNTHETIC) modifyInfo (info => + substAliases(info).asSeenFrom(site.thisType, sym.owner) + ) } } } diff --git a/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala b/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala index dde166d64b..34bad05e1f 100644 --- a/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala +++ b/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala @@ -106,7 +106,10 @@ abstract class AddInterfaces extends InfoTransform { self: Erasure => } if (currentRun.compiles(iface)) currentRun.symSource(impl) = iface.sourceFile impl setPos iface.pos - impl.flags = implClassFlags + if (impl.flags != implClassFlags) { + log("!!! Directly setting impl class flags from %s to %s".format(flagsToString(impl.flags), flagsToString(implClassFlags))) + impl.flags = implClassFlags + } impl setInfo new LazyImplClassType(iface) implClassMap(iface) = impl debuglog( diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index ed410a76db..6d4dab57a3 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -389,11 +389,14 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { var sourceModule = clazz.owner.info.decls.lookup(sym.name.toTermName) if (sourceModule != NoSymbol) { sourceModule setPos sym.pos - sourceModule.flags = MODULE | FINAL + if (sourceModule.flags != MODULE) { + log("!!! Directly setting sourceModule flags from %s to MODULE".format(flagsToString(sourceModule.flags))) + sourceModule.flags = MODULE + } } else { sourceModule = ( - clazz.owner.newModuleSymbol(sym.name.toTermName, sym.pos, MODULE | FINAL) + clazz.owner.newModuleSymbol(sym.name.toTermName, sym.pos, MODULE) setModuleClass sym.asInstanceOf[ClassSymbol] ) clazz.owner.info.decls enter sourceModule @@ -935,7 +938,7 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { private def checkedGetter(lhs: Tree) = { val sym = clazz.info decl lhs.symbol.getterName suchThat (_.isGetter) if (needsInitAndHasOffset(sym)) { - debuglog("adding checked getter for: " + sym + " " + lhs.symbol.defaultFlagString) + debuglog("adding checked getter for: " + sym + " " + lhs.symbol.flagString) List(localTyper typed mkSetFlag(clazz, fieldOffset(sym), sym)) } else Nil diff --git a/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala b/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala index b57f139074..04341fea25 100644 --- a/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala +++ b/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala @@ -304,7 +304,7 @@ trait MethodSynthesis { } } private def logDerived(result: Tree): Tree = { - debuglog("[+derived] " + ojoin(mods.defaultFlagString, basisSym.accurateKindString, basisSym.getterName.decode) + debuglog("[+derived] " + ojoin(mods.flagString, basisSym.accurateKindString, basisSym.getterName.decode) + " (" + derivedSym + ")\n " + result) result diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala index 7ea78a81d5..ed17d6efa7 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala @@ -1362,7 +1362,7 @@ trait Namers extends MethodSynthesis { } } private val logDefinition = new LogTransitions[Symbol]( - sym => "[define] >> " + sym.defaultFlagString + " " + sym.fullLocationString, + sym => "[define] >> " + sym.flagString + " " + sym.fullLocationString, sym => "[define] << " + sym ) private def logAndValidate(sym: Symbol)(body: => Unit) { |