summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@typesafe.com>2015-11-27 16:35:27 +0100
committerLukas Rytz <lukas.rytz@typesafe.com>2015-11-27 16:35:27 +0100
commit5c0386922f410fdf078d4a0bfc5a8a4bc4d8bd61 (patch)
tree762f9eb3131bd1006317b4cde6852ff5985a65db
parent2ef93ad2fe29766fbe09a3e921ad361b25abdeaf (diff)
parent5e3d61c97ad221d9bbd73ab8cfacb2b3db355b3c (diff)
downloadscala-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
-rw-r--r--src/compiler/scala/tools/ant/Scalac.scala2
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala2
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala23
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/BCodeSkelBuilder.scala2
-rw-r--r--src/repl/scala/tools/nsc/interpreter/Phased.scala15
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 {