diff options
author | Lukas Rytz <lukas.rytz@typesafe.com> | 2015-11-27 16:35:27 +0100 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@typesafe.com> | 2015-11-27 16:35:27 +0100 |
commit | 5c0386922f410fdf078d4a0bfc5a8a4bc4d8bd61 (patch) | |
tree | 762f9eb3131bd1006317b4cde6852ff5985a65db | |
parent | 2ef93ad2fe29766fbe09a3e921ad361b25abdeaf (diff) | |
parent | 5e3d61c97ad221d9bbd73ab8cfacb2b3db355b3c (diff) | |
download | scala-5c0386922f410fdf078d4a0bfc5a8a4bc4d8bd61.tar.gz scala-5c0386922f410fdf078d4a0bfc5a8a4bc4d8bd61.tar.bz2 scala-5c0386922f410fdf078d4a0bfc5a8a4bc4d8bd61.zip |
Merge pull request #4867 from soc/topic/backend-cleanup
Clean up some remains of the GenAsm/GenICode drop
5 files changed, 14 insertions, 30 deletions
diff --git a/src/compiler/scala/tools/ant/Scalac.scala b/src/compiler/scala/tools/ant/Scalac.scala index 9fe087fe7d..4554a648b4 100644 --- a/src/compiler/scala/tools/ant/Scalac.scala +++ b/src/compiler/scala/tools/ant/Scalac.scala @@ -91,7 +91,7 @@ class Scalac extends ScalaMatchingTask with ScalacShared { val values = List("namer", "typer", "pickler", "refchecks", "uncurry", "tailcalls", "specialize", "explicitouter", "erasure", "lazyvals", "lambdalift", "constructors", - "flatten", "mixin", "delambdafy", "cleanup", "icode", + "flatten", "mixin", "delambdafy", "cleanup", "jvm", "terminal") } diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala index 4bc64650c4..c1d7176d0c 100644 --- a/src/compiler/scala/tools/nsc/Global.scala +++ b/src/compiler/scala/tools/nsc/Global.scala @@ -1428,7 +1428,7 @@ class Global(var currentSettings: Settings, var reporter: Reporter) // move the pointer globalPhase = globalPhase.next - // run tree/icode checkers + // run tree checkers if (settings.check containsPhase globalPhase.prev) runCheckers() diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala b/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala index e635708a94..1ec9ba8a95 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala @@ -31,9 +31,8 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { * True for classes generated by the Scala compiler that are considered top-level in terms of * the InnerClass / EnclosingMethod classfile attributes. See comment in BTypes. */ - def considerAsTopLevelImplementationArtifact(classSym: Symbol) = { + def considerAsTopLevelImplementationArtifact(classSym: Symbol) = classSym.isImplClass || classSym.isSpecialized - } /** * Cache the value of delambdafy == "inline" for each run. We need to query this value many @@ -846,8 +845,6 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { trait BCJGenSigGen { - def getCurrentCUnit(): CompilationUnit - // @M don't generate java generics sigs for (members of) implementation // classes, as they are monomorphic (TODO: ok?) private def needsGenericSignature(sym: Symbol) = !( @@ -870,14 +867,12 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { * * must-single-thread */ - def getGenericSignature(sym: Symbol, owner: Symbol): String = getGenericSignature(sym, owner, getCurrentCUnit()) - - def getGenericSignature(sym: Symbol, owner: Symbol, unit: CompilationUnit): String = { + def getGenericSignature(sym: Symbol, owner: Symbol): String = { val memberTpe = enteringErasure(owner.thisType.memberInfo(sym)) - getGenericSignature(sym, owner, memberTpe, unit) + getGenericSignature(sym, owner, memberTpe) } - def getGenericSignature(sym: Symbol, owner: Symbol, memberTpe: Type, unit: CompilationUnit): String = { + def getGenericSignature(sym: Symbol, owner: Symbol, memberTpe: Type): String = { if (!needsGenericSignature(sym)) { return null } val jsOpt: Option[String] = erasure.javaSig(sym, memberTpe) @@ -962,7 +957,7 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { * must-single-thread */ private def addForwarder(isRemoteClass: Boolean, jclass: asm.ClassVisitor, module: Symbol, m: Symbol): Unit = { - def staticForwarderGenericSignature(sym: Symbol, moduleClass: Symbol, unit: CompilationUnit): String = { + def staticForwarderGenericSignature(sym: Symbol, moduleClass: Symbol): String = { if (sym.isDeferred) null // only add generic signature if method concrete; bug #1745 else { // SI-3452 Static forwarder generation uses the same erased signature as the method if forwards to. @@ -973,7 +968,7 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { val memberTpe = enteringErasure(moduleClass.thisType.memberInfo(sym)) val erasedMemberType = erasure.erasure(sym)(memberTpe) if (erasedMemberType =:= sym.info) - getGenericSignature(sym, moduleClass, memberTpe, unit) + getGenericSignature(sym, moduleClass, memberTpe) else null } } @@ -994,7 +989,7 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { ) // TODO needed? for(ann <- m.annotations) { ann.symbol.initialize } - val jgensig = staticForwarderGenericSignature(m, module, getCurrentCUnit()) + val jgensig = staticForwarderGenericSignature(m, module) addRemoteExceptionAnnot(isRemoteClass, hasPublicBitSet(flags), m) val (throws, others) = m.annotations partition (_.symbol == definitions.ThrowsClass) val thrownExceptions: List[String] = getExceptions(throws) @@ -1117,9 +1112,6 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { /* builder of mirror classes */ class JMirrorBuilder extends JCommonBuilder { - private var cunit: CompilationUnit = _ - def getCurrentCUnit(): CompilationUnit = cunit; - /* Generate a mirror class for a top-level module. A mirror class is a class * containing only static methods that forward to the corresponding method * on the MODULE instance of the given Scala object. It will only be @@ -1131,7 +1123,6 @@ abstract class BCodeHelpers extends BCodeIdiomatic with BytecodeWriters { def genMirrorClass(moduleClass: Symbol, cunit: CompilationUnit): asm.tree.ClassNode = { assert(moduleClass.isModuleClass) assert(moduleClass.companionClass == NoSymbol, moduleClass) - this.cunit = cunit val bType = mirrorClassClassBType(moduleClass) val mirrorClass = new asm.tree.ClassNode diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BCodeSkelBuilder.scala b/src/compiler/scala/tools/nsc/backend/jvm/BCodeSkelBuilder.scala index abd06b90a0..7180c25d25 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/BCodeSkelBuilder.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/BCodeSkelBuilder.scala @@ -82,8 +82,6 @@ abstract class BCodeSkelBuilder extends BCodeHelpers { global synchronized { global.log(msg) } } - override def getCurrentCUnit(): CompilationUnit = { cunit } - /* ---------------- helper utils for generating classes and fields ---------------- */ def genPlainClass(cd: ClassDef) { diff --git a/src/repl/scala/tools/nsc/interpreter/Phased.scala b/src/repl/scala/tools/nsc/interpreter/Phased.scala index 1cdbd65949..3dda323762 100644 --- a/src/repl/scala/tools/nsc/interpreter/Phased.scala +++ b/src/repl/scala/tools/nsc/interpreter/Phased.scala @@ -89,9 +89,8 @@ trait Phased { lazy val all = List( Parser, Namer, Packageobjects, Typer, Superaccessors, Pickler, Refchecks, - Selectiveanf, Liftcode, Selectivecps, Uncurry, Tailcalls, Specialize, - Explicitouter, Erasure, Lazyvals, Lambdalift, Constructors, Flatten, Mixin, - Cleanup, Delambdafy, Icode, Inliner, Closelim, Dce, Jvm, Terminal + Uncurry, Tailcalls, Specialize, Explicitouter, Erasure, Lazyvals, Lambdalift, + Constructors, Flatten, Mixin, Cleanup, Delambdafy, Jvm, Terminal ) lazy val nameMap = all.map(x => x.name -> x).toMap withDefaultValue NoPhaseName multi = all @@ -110,17 +109,17 @@ trait Phased { case object Namer extends PhaseName case object Packageobjects extends PhaseName case object Typer extends PhaseName + case object Patmat extends PhaseName case object Superaccessors extends PhaseName + case object Extmethods extends PhaseName case object Pickler extends PhaseName case object Refchecks extends PhaseName - case object Selectiveanf extends PhaseName - case object Liftcode extends PhaseName - case object Selectivecps extends PhaseName case object Uncurry extends PhaseName case object Tailcalls extends PhaseName case object Specialize extends PhaseName case object Explicitouter extends PhaseName case object Erasure extends PhaseName + case object PostErasure extends PhaseName case object Lazyvals extends PhaseName case object Lambdalift extends PhaseName case object Constructors extends PhaseName @@ -128,10 +127,6 @@ trait Phased { case object Mixin extends PhaseName case object Cleanup extends PhaseName case object Delambdafy extends PhaseName - case object Icode extends PhaseName - case object Inliner extends PhaseName - case object Closelim extends PhaseName - case object Dce extends PhaseName case object Jvm extends PhaseName case object Terminal extends PhaseName case object NoPhaseName extends PhaseName { |