summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc
diff options
context:
space:
mode:
authorSean McDirmid <sean.mcdirmid@gmail.com>2006-08-25 11:57:45 +0000
committerSean McDirmid <sean.mcdirmid@gmail.com>2006-08-25 11:57:45 +0000
commit5a4ad1c3ffa2025e0d833139db6dc0f45f0839c8 (patch)
treee0c4b635228a9ebb02df891e0e90e57d31b5f567 /src/compiler/scala/tools/nsc
parent6d9e1774b9d543550473b3f32c4925d290c9edd1 (diff)
downloadscala-5a4ad1c3ffa2025e0d833139db6dc0f45f0839c8.tar.gz
scala-5a4ad1c3ffa2025e0d833139db6dc0f45f0839c8.tar.bz2
scala-5a4ad1c3ffa2025e0d833139db6dc0f45f0839c8.zip
Eliminated need for extra global class so Globa...
Eliminated need for extra global class so Global can remain concrete.
Diffstat (limited to 'src/compiler/scala/tools/nsc')
-rw-r--r--src/compiler/scala/tools/nsc/CompileServer.scala2
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala16
-rw-r--r--src/compiler/scala/tools/nsc/Interpreter.scala2
-rw-r--r--src/compiler/scala/tools/nsc/Main.scala2
-rw-r--r--src/compiler/scala/tools/nsc/MainTokenMetric.scala2
-rw-r--r--src/compiler/scala/tools/nsc/PositionConfiguration.scala11
-rw-r--r--src/compiler/scala/tools/nsc/ScriptRunner.scala2
-rw-r--r--src/compiler/scala/tools/nsc/StdGlobal.scala11
8 files changed, 31 insertions, 17 deletions
diff --git a/src/compiler/scala/tools/nsc/CompileServer.scala b/src/compiler/scala/tools/nsc/CompileServer.scala
index 9136216426..c88f412948 100644
--- a/src/compiler/scala/tools/nsc/CompileServer.scala
+++ b/src/compiler/scala/tools/nsc/CompileServer.scala
@@ -123,7 +123,7 @@ object CompileServer extends SocketServer {
} else {
if (args contains "-verbose")
out.println("[Starting new Scala compile server instance]")
- compiler = new StdGlobal(command.settings, reporter) {
+ compiler = new Global(command.settings, reporter) {
override def inform(msg: String) = out.println(msg)
}
}
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala
index 891e35d98a..91fd77ab22 100644
--- a/src/compiler/scala/tools/nsc/Global.scala
+++ b/src/compiler/scala/tools/nsc/Global.scala
@@ -29,7 +29,7 @@ import backend.jvm.GenJVM
import backend.opt.{Inliners, ClosureElimination, DeadCodeElimination}
import backend.icode.analysis._
-abstract class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable
+class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable
with Trees
with CompilationUnits
{
@@ -612,4 +612,18 @@ abstract class Global(var settings: Settings, var reporter: Reporter) extends Sy
def forCLDC: Boolean = settings.target.value == "cldc"
def onlyPresentation = settings.doc.value
+ // position stuff
+ val positionConfiguration : PositionConfiguration = new PositionConfiguration {
+ type PositionType = Int;
+ def coercePosToInt(pos : PositionType) : Int = pos;
+ def coerceIntToPos(pos : Int) : PositionType = pos;
+ val NoPos : PositionType = Position.NOPOS;
+ val FirstPos : PositionType = Position.FIRSTPOS;
+ }
+ final type PositionType = positionConfiguration.PositionType;
+ final val FirstPos = positionConfiguration.FirstPos;
+ final val NoPos = positionConfiguration.NoPos;
+ final def coerceIntToPos(pos : Int) : PositionType = positionConfiguration.coerceIntToPos(pos);
+ implicit final def coercePosToInt(pos : PositionType) : Int = positionConfiguration.coercePosToInt(pos);
+
}
diff --git a/src/compiler/scala/tools/nsc/Interpreter.scala b/src/compiler/scala/tools/nsc/Interpreter.scala
index 1288da2ba5..30d71d438f 100644
--- a/src/compiler/scala/tools/nsc/Interpreter.scala
+++ b/src/compiler/scala/tools/nsc/Interpreter.scala
@@ -81,7 +81,7 @@ class Interpreter(val settings: Settings, reporter: Reporter, out: PrintWriter)
settings.outdir.value = classfilePath.getPath
/** the compiler to compile expressions with */
- val compiler = new StdGlobal(settings, reporter)
+ val compiler = new Global(settings, reporter)
/** class loader used to load compiled code */
/* A single class loader is used for all commands interpreted by this Interpreter.
diff --git a/src/compiler/scala/tools/nsc/Main.scala b/src/compiler/scala/tools/nsc/Main.scala
index 560ade7ff6..169c90e306 100644
--- a/src/compiler/scala/tools/nsc/Main.scala
+++ b/src/compiler/scala/tools/nsc/Main.scala
@@ -62,7 +62,7 @@ object Main extends Object with EvalLoop {
reporter.info(null, command.usageMsg, true)
else {
try {
- object compiler extends StdGlobal(command.settings, reporter);
+ object compiler extends Global(command.settings, reporter);
/*
if (command.settings.Xgenerics.value)
forever(compiler)
diff --git a/src/compiler/scala/tools/nsc/MainTokenMetric.scala b/src/compiler/scala/tools/nsc/MainTokenMetric.scala
index cfe1b9a7ec..0fe6e0a2cc 100644
--- a/src/compiler/scala/tools/nsc/MainTokenMetric.scala
+++ b/src/compiler/scala/tools/nsc/MainTokenMetric.scala
@@ -44,7 +44,7 @@ object MainTokenMetric {
val command = new CompilerCommand(List.fromArray(args), error, false)
reporter = new ConsoleReporter()
try {
- val compiler = new StdGlobal(command.settings, reporter)
+ val compiler = new Global(command.settings, reporter)
tokenMetric(compiler, command.files)
} catch {
case ex @ FatalError(msg) =>
diff --git a/src/compiler/scala/tools/nsc/PositionConfiguration.scala b/src/compiler/scala/tools/nsc/PositionConfiguration.scala
new file mode 100644
index 0000000000..66acca5a00
--- /dev/null
+++ b/src/compiler/scala/tools/nsc/PositionConfiguration.scala
@@ -0,0 +1,11 @@
+package scala.tools.nsc;
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.util.Position;
+
+trait PositionConfiguration {
+ type PositionType;
+ def coercePosToInt(pos : PositionType) : Int;
+ def coerceIntToPos(pos : Int) : PositionType;
+ val NoPos : PositionType;
+ val FirstPos : PositionType;
+}
diff --git a/src/compiler/scala/tools/nsc/ScriptRunner.scala b/src/compiler/scala/tools/nsc/ScriptRunner.scala
index e73dc8a308..8b65a0e0a3 100644
--- a/src/compiler/scala/tools/nsc/ScriptRunner.scala
+++ b/src/compiler/scala/tools/nsc/ScriptRunner.scala
@@ -220,7 +220,7 @@ object ScriptRunner {
if (settings.nocompdaemon.value) {
val reporter = new ConsoleReporter
- val compiler = new StdGlobal(settings, reporter)
+ val compiler = new Global(settings, reporter)
val cr = new compiler.Run
cr.compileSources(List(wrappedScript(scriptFile)))
Pair(compiledPath, reporter.errors == 0)
diff --git a/src/compiler/scala/tools/nsc/StdGlobal.scala b/src/compiler/scala/tools/nsc/StdGlobal.scala
deleted file mode 100644
index d755d2d167..0000000000
--- a/src/compiler/scala/tools/nsc/StdGlobal.scala
+++ /dev/null
@@ -1,11 +0,0 @@
-package scala.tools.nsc;
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.util.Position;
-
-class StdGlobal(settings: Settings, reporter: Reporter) extends Global(settings, reporter) {
- type PositionType = Int;
- implicit def coercePosToInt(pos : PositionType) : Int = pos;
- def coerceIntToPos(pos : Int) : PositionType = pos;
- val NoPos = Position.NOPOS;
- val FirstPos = Position.FIRSTPOS;
-}