summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actors/scala/actors/Actor.scala4
-rw-r--r--src/actors/scala/actors/ActorProxy.scala4
-rw-r--r--src/actors/scala/actors/Channel.scala4
-rw-r--r--src/actors/scala/actors/Reaction.scala19
-rw-r--r--src/actors/scala/actors/Scheduler.scala9
-rw-r--r--src/actors/scala/actors/TimerThread.scala5
-rw-r--r--src/actors/scala/actors/remote/RemoteActor.scala12
-rw-r--r--src/actors/scala/actors/remote/Serializer.scala4
-rw-r--r--src/actors/scala/actors/remote/TcpService.scala9
-rw-r--r--src/compiler/scala/tools/ant/ScalaTool.scala6
-rw-r--r--src/compiler/scala/tools/ant/Scalac.scala8
-rw-r--r--src/compiler/scala/tools/nsc/CompileClient.scala27
-rw-r--r--src/compiler/scala/tools/nsc/CompileServer.scala6
-rw-r--r--src/compiler/scala/tools/nsc/CompileSocket.scala9
-rw-r--r--src/compiler/scala/tools/nsc/CompilerCommand.scala4
-rw-r--r--src/compiler/scala/tools/nsc/GenericRunnerSettings.scala4
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala11
-rw-r--r--src/compiler/scala/tools/nsc/Interpreter.scala3
-rw-r--r--src/compiler/scala/tools/nsc/InterpreterLoop.scala2
-rw-r--r--src/compiler/scala/tools/nsc/Main.scala14
-rw-r--r--src/compiler/scala/tools/nsc/MainGenericRunner.scala7
-rw-r--r--src/compiler/scala/tools/nsc/MainTokenMetric.scala6
-rw-r--r--src/compiler/scala/tools/nsc/ObjectRunner.scala2
-rw-r--r--src/compiler/scala/tools/nsc/ScriptRunner.scala5
-rw-r--r--src/compiler/scala/tools/nsc/Settings.scala1
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala5
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreePrinters.scala6
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala19
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Scanners.scala9
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala9
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/Checkers.scala4
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/GenICode.scala3
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/ICodes.scala4
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala3
-rw-r--r--src/compiler/scala/tools/nsc/doc/DocGenerator.scala3
-rw-r--r--src/compiler/scala/tools/nsc/io/AbstractFile.scala2
-rw-r--r--src/compiler/scala/tools/nsc/io/VirtualFile.scala3
-rw-r--r--src/compiler/scala/tools/nsc/matching/PatternMatchers.scala11
-rw-r--r--src/compiler/scala/tools/nsc/matching/PatternNodes.scala9
-rw-r--r--src/compiler/scala/tools/nsc/models/Models.scala10
-rw-r--r--src/compiler/scala/tools/nsc/models/SemanticTokens.scala122
-rw-r--r--src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala10
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Constants.scala10
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala8
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Names.scala4
-rw-r--r--src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala3
-rw-r--r--src/compiler/scala/tools/nsc/symtab/SymbolTable.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala4
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala45
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala8
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala15
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/PickleBuffer.scala4
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala2
-rw-r--r--src/compiler/scala/tools/nsc/transform/Erasure.scala10
-rw-r--r--src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala2
-rw-r--r--src/compiler/scala/tools/nsc/transform/LambdaLift.scala2
-rw-r--r--src/compiler/scala/tools/nsc/transform/Mixin.scala4
-rw-r--r--src/compiler/scala/tools/nsc/transform/UnCurry.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/ConstantFolder.scala3
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Infer.scala20
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala6
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala26
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala4
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala6
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala39
-rw-r--r--src/compiler/scala/tools/nsc/util/ClassPath.scala8
-rw-r--r--src/compiler/scala/tools/nsc/util/HashSet.scala4
-rw-r--r--src/compiler/scala/tools/nsc/util/NameTransformer.scala10
-rw-r--r--src/compiler/scala/tools/nsc/util/Position.scala5
-rw-r--r--src/compiler/scala/tools/nsc/util/ShowPickled.scala15
-rw-r--r--src/compiler/scala/tools/nsc/util/SourceFile.scala7
-rw-r--r--src/compiler/scala/tools/util/AbstractTimer.scala5
-rw-r--r--src/compiler/scala/tools/util/SocketServer.scala6
-rw-r--r--src/compiler/scala/tools/util/UTF8Codec.scala2
-rw-r--r--src/dbc/scala/dbc/datatype/Unknown.scala2
-rw-r--r--src/dbc/scala/dbc/result/Relation.scala2
-rw-r--r--src/dbc/scala/dbc/value/Factory.scala2
-rw-r--r--src/dbc/scala/dbc/value/Unknown.scala2
-rw-r--r--src/dbc/scala/dbc/vendor/PostgreSQL.scala4
-rw-r--r--src/library/scala/Application.scala11
-rw-r--r--src/library/scala/Array.scala6
-rw-r--r--src/library/scala/Console.scala14
-rw-r--r--src/library/scala/Iterable.scala2
-rw-r--r--src/library/scala/Iterator.scala1
-rw-r--r--src/library/scala/List.scala3
-rw-r--r--src/library/scala/NotDefinedError.scala6
-rw-r--r--src/library/scala/Option.scala3
-rw-r--r--src/library/scala/Predef.scala42
-rw-r--r--src/library/scala/Seq.scala2
-rw-r--r--src/library/scala/Stream.scala2
-rw-r--r--src/library/scala/collection/Map.scala2
-rw-r--r--src/library/scala/collection/immutable/ListMap.scala2
-rw-r--r--src/library/scala/collection/immutable/ListSet.scala2
-rw-r--r--src/library/scala/collection/immutable/Queue.scala2
-rw-r--r--src/library/scala/collection/immutable/Stack.scala2
-rw-r--r--src/library/scala/collection/immutable/Tree.scala2
-rw-r--r--src/library/scala/collection/mutable/Buffer.scala1
-rw-r--r--src/library/scala/collection/mutable/ListBuffer.scala1
-rw-r--r--src/library/scala/collection/mutable/Map.scala2
-rw-r--r--src/library/scala/collection/mutable/Message.scala2
-rw-r--r--src/library/scala/collection/mutable/MutableList.scala2
-rw-r--r--src/library/scala/collection/mutable/ObservableBuffer.scala2
-rw-r--r--src/library/scala/collection/mutable/PriorityQueue.scala2
-rw-r--r--src/library/scala/collection/mutable/Queue.scala2
-rw-r--r--src/library/scala/collection/mutable/Set.scala2
-rw-r--r--src/library/scala/collection/mutable/Stack.scala1
-rw-r--r--src/library/scala/compat/Math.scala46
-rw-r--r--src/library/scala/compat/Platform.scala33
-rw-r--r--src/library/scala/compat/StringBuilder.scala52
-rw-r--r--src/library/scala/concurrent/Actor.scala6
-rw-r--r--src/library/scala/concurrent/Lock.scala2
-rw-r--r--src/library/scala/concurrent/NameServer.scala2
-rw-r--r--src/library/scala/concurrent/Process.scala6
-rw-r--r--src/library/scala/concurrent/ops.scala2
-rw-r--r--src/library/scala/io/BytePickle.scala1
-rw-r--r--src/library/scala/io/Position.scala1
-rw-r--r--src/library/scala/io/Source.scala7
-rw-r--r--src/library/scala/io/UTF8Codec.scala2
-rw-r--r--src/library/scala/mobile/Code.scala3
-rw-r--r--src/library/scala/mobile/Location.scala2
-rw-r--r--src/library/scala/reflect/Code.scala4
-rw-r--r--src/library/scala/runtime/BoxedAnyArray.scala39
-rw-r--r--src/library/scala/runtime/BoxedArray.scala38
-rw-r--r--src/library/scala/runtime/BoxedBooleanArray.scala10
-rw-r--r--src/library/scala/runtime/BoxedByteArray.scala10
-rw-r--r--src/library/scala/runtime/BoxedCharArray.scala10
-rw-r--r--src/library/scala/runtime/BoxedDoubleArray.scala10
-rw-r--r--src/library/scala/runtime/BoxedFloatArray.scala10
-rw-r--r--src/library/scala/runtime/BoxedIntArray.scala10
-rw-r--r--src/library/scala/runtime/BoxedLongArray.scala10
-rw-r--r--src/library/scala/runtime/BoxedObjectArray.scala20
-rw-r--r--src/library/scala/runtime/BoxedShortArray.scala10
-rw-r--r--src/library/scala/runtime/NonLocalReturnException.scala2
-rwxr-xr-xsrc/library/scala/runtime/RichString.scala13
-rw-r--r--src/library/scala/runtime/ScalaRunTime.scala11
-rw-r--r--src/library/scala/testing/Benchmark.scala13
-rw-r--r--src/library/scala/util/Fluid.scala8
-rw-r--r--src/library/scala/util/automata/BaseBerrySethi.scala2
-rw-r--r--src/library/scala/util/parsing/SimpleTokenizer.scala2
-rw-r--r--src/library/scala/xml/Comment.scala2
-rw-r--r--src/library/scala/xml/Elem.scala2
-rw-r--r--src/library/scala/xml/Group.scala1
-rw-r--r--src/library/scala/xml/NamespaceBinding.scala2
-rw-r--r--src/library/scala/xml/PrefixedAttribute.scala1
-rw-r--r--src/library/scala/xml/ProcInstr.scala1
-rw-r--r--src/library/scala/xml/Utility.scala8
-rw-r--r--src/library/scala/xml/dtd/Decl.scala1
-rw-r--r--src/library/scala/xml/dtd/DocType.scala2
-rw-r--r--src/library/scala/xml/dtd/ExternalID.scala1
-rw-r--r--src/library/scala/xml/parsing/FactoryAdapter.scala40
-rw-r--r--src/library/scala/xml/pull/XMLEventReader.scala3
-rw-r--r--src/library/scala/xml/transform/BasicTransformer.scala2
-rw-r--r--test/files/jvm/JavaInteraction.scala8
-rw-r--r--test/files/jvm/bigints.scala11
-rw-r--r--test/files/jvm5/attributes.scala2
-rw-r--r--test/files/jvm5/bug676.scala2
-rw-r--r--[-rwxr-xr-x]test/files/jvm5/bug680.scala2
-rw-r--r--test/files/neg/bug421.scala2
-rw-r--r--test/files/neg/bug500.scala2
-rw-r--r--test/files/neg/bug501.scala2
-rw-r--r--test/files/neg/bug692.check2
-rwxr-xr-xtest/files/neg/bug692.scala12
-rw-r--r--test/files/neg/bug779.scala2
-rw-r--r--test/files/neg/constrs.check4
-rw-r--r--test/files/neg/constrs.scala2
-rw-r--r--test/files/neg/forward.scala2
-rw-r--r--test/files/neg/viewtest.scala6
-rw-r--r--test/files/pos/Z.scala2
-rw-r--r--test/files/pos/abstract.scala2
-rw-r--r--test/files/pos/bug082.scala2
-rw-r--r--test/files/pos/bug1.scala8
-rw-r--r--test/files/pos/bug115.scala2
-rw-r--r--test/files/pos/bug159.scala4
-rw-r--r--test/files/pos/bug17.scala2
-rw-r--r--test/files/pos/bug193.scala10
-rw-r--r--test/files/pos/bug20.scala4
-rw-r--r--test/files/pos/bug211.scala2
-rw-r--r--test/files/pos/bug267.scala2
-rw-r--r--test/files/pos/bug31.scala2
-rw-r--r--test/files/pos/bug32.scala4
-rw-r--r--test/files/pos/bug360.scala2
-rw-r--r--test/files/pos/bug374.scala2
-rw-r--r--test/files/pos/bug49.scala4
-rw-r--r--test/files/pos/bug516.scala4
-rw-r--r--test/files/pos/constfold.scala8
-rw-r--r--test/files/pos/exceptions.scala8
-rw-r--r--test/files/pos/functions.scala2
-rw-r--r--test/files/pos/gui.scala10
-rw-r--r--test/files/pos/localmodules.scala4
-rw-r--r--test/files/pos/matthias4.scala8
-rw-r--r--test/files/pos/michel2.scala6
-rw-r--r--test/files/pos/michel5.scala4
-rw-r--r--test/files/pos/override.scala6
-rw-r--r--test/files/pos/rebind.scala2
-rw-r--r--test/files/pos/seqtest2.scala2
-rw-r--r--test/files/pos/testcast.scala2
-rw-r--r--test/files/pos/thistype.scala4
-rw-r--r--test/files/pos/traits.scala6
-rw-r--r--test/files/pos/viewtest1.scala2
-rw-r--r--test/files/pos/viewtest2.scala6
-rw-r--r--test/files/run/Course-2002-10.scala14
-rw-r--r--test/files/run/bugs.scala8
-rw-r--r--test/files/run/caseclasses.scala1
-rw-r--r--test/files/run/lisp.scala8
-rw-r--r--test/files/run/misc.scala4
-rw-r--r--test/files/script/fact.scala2
207 files changed, 850 insertions, 692 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala
index 370b861bab..380486d87d 100644
--- a/src/actors/scala/actors/Actor.scala
+++ b/src/actors/scala/actors/Actor.scala
@@ -33,7 +33,7 @@ object Actor {
* @return returns the currently executing actor.
*/
def self: Actor = synchronized {
- val t = Thread.currentThread()
+ val t = currentThread
var a = selfs.get(t).asInstanceOf[Actor]
if (a == null) {
a = new ActorProxy(t)
@@ -453,7 +453,7 @@ trait Actor extends OutputChannel[Any] {
*/
def exit(reason: String): Unit = {
exitReason = reason
- Thread.currentThread().interrupt()
+ currentThread.interrupt()
}
private[actors] def exit(from: Actor, reason: String): Unit = {
diff --git a/src/actors/scala/actors/ActorProxy.scala b/src/actors/scala/actors/ActorProxy.scala
index 69819cb605..6e727e01f0 100644
--- a/src/actors/scala/actors/ActorProxy.scala
+++ b/src/actors/scala/actors/ActorProxy.scala
@@ -8,8 +8,12 @@
// $Id$
+
package scala.actors
+
+import java.lang.Thread
+
/**
* This class provides a dynamic actor proxy for normal Java
* threads.
diff --git a/src/actors/scala/actors/Channel.scala b/src/actors/scala/actors/Channel.scala
index cfabfe921e..3046c006b4 100644
--- a/src/actors/scala/actors/Channel.scala
+++ b/src/actors/scala/actors/Channel.scala
@@ -36,9 +36,7 @@ class Channel[Msg] extends InputChannel[Msg] with OutputChannel[Msg] {
private[actors] var receiver: Actor = synchronized {
// basically Actor.self, but can be null
- val t = Thread.currentThread()
- val a = Actor.selfs.get(t).asInstanceOf[Actor]
- a
+ Actor.selfs.get(currentThread).asInstanceOf[Actor]
}
private var received: Msg = _
diff --git a/src/actors/scala/actors/Reaction.scala b/src/actors/scala/actors/Reaction.scala
index ff8b236371..f88e6b7c77 100644
--- a/src/actors/scala/actors/Reaction.scala
+++ b/src/actors/scala/actors/Reaction.scala
@@ -6,10 +6,15 @@
** |/ **
\* */
-// $Id: $
+// $Id$
+
package scala.actors
+
+import java.lang.Runnable
+import java.lang.InterruptedException
+
/**
* The abstract class <code>Reaction</code> associates an instance
* of an <code>Actor</code> with a
@@ -35,15 +40,15 @@ private[actors] class StartTask(a: Actor) extends Reaction {
def actor = a
def run(): Unit = {
- val t = Thread.currentThread()
+ val t = currentThread
val saved = Actor.selfs.get(t).asInstanceOf[Actor]
Actor.selfs.put(t, a)
try {
a.act()
- if (Thread.currentThread().isInterrupted())
+ if (currentThread.isInterrupted())
throw new InterruptedException
a.kill()
- if (Thread.currentThread().isInterrupted())
+ if (currentThread.isInterrupted())
throw new InterruptedException
a.exit("normal")
}
@@ -75,15 +80,15 @@ private[actors] class ActorTask(a: Actor,
def actor = a
def run(): Unit = {
- val t = Thread.currentThread()
+ val t = currentThread
val saved = Actor.selfs.get(t).asInstanceOf[Actor]
Actor.selfs.put(t, a)
try {
f(msg)
- if (Thread.currentThread().isInterrupted())
+ if (currentThread.isInterrupted())
throw new InterruptedException
a.kill()
- if (Thread.currentThread().isInterrupted())
+ if (currentThread.isInterrupted())
throw new InterruptedException
a.exit("normal")
}
diff --git a/src/actors/scala/actors/Scheduler.scala b/src/actors/scala/actors/Scheduler.scala
index 870eb0618e..49c14f010f 100644
--- a/src/actors/scala/actors/Scheduler.scala
+++ b/src/actors/scala/actors/Scheduler.scala
@@ -8,8 +8,13 @@
// $Id$
+
package scala.actors
+import java.lang.{Runnable, Thread}
+import java.lang.InterruptedException
+
+import compat.Platform
import scala.collection.mutable.{ArrayBuffer, Buffer, HashMap, Queue}
/**
@@ -198,7 +203,7 @@ class TickedScheduler extends IScheduler {
case None =>
foundBusy = true // assume not blocked
case Some(ts) =>
- val currTime = System.currentTimeMillis
+ val currTime = Platform.currentTime
if (currTime - ts < TICKFREQ)
foundBusy = true
}
@@ -242,7 +247,7 @@ class TickedScheduler extends IScheduler {
// thread outside of scheduler;
// error("No worker thread associated with actor " + a)
case Some(wt) =>
- ticks.update(wt, System.currentTimeMillis)
+ ticks.update(wt, Platform.currentTime)
}
}
diff --git a/src/actors/scala/actors/TimerThread.scala b/src/actors/scala/actors/TimerThread.scala
index 3c401292cf..c394b6bdd0 100644
--- a/src/actors/scala/actors/TimerThread.scala
+++ b/src/actors/scala/actors/TimerThread.scala
@@ -8,8 +8,13 @@
// $Id$
+
package scala.actors
+
+import java.lang.{Runnable, Thread}
+import java.lang.InterruptedException
+
/**
* This class allows the (local) sending of a message to an actor after
* a timeout. Used by the library to build <code>receiveWithin(time: long)</code>.
diff --git a/src/actors/scala/actors/remote/RemoteActor.scala b/src/actors/scala/actors/remote/RemoteActor.scala
index 03322ef973..3b4e437ac8 100644
--- a/src/actors/scala/actors/remote/RemoteActor.scala
+++ b/src/actors/scala/actors/remote/RemoteActor.scala
@@ -1,5 +1,17 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2005-2006, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+
package scala.actors.remote
+
/**
This object provides methods for creating, registering, and
selecting remotely accessible actors.
diff --git a/src/actors/scala/actors/remote/Serializer.scala b/src/actors/scala/actors/remote/Serializer.scala
index a30fff8613..e3c9c1236e 100644
--- a/src/actors/scala/actors/remote/Serializer.scala
+++ b/src/actors/scala/actors/remote/Serializer.scala
@@ -8,8 +8,12 @@
// $Id$
+
package scala.actors.remote
+
+import java.lang.ClassNotFoundException
+
import java.io.{DataInputStream, DataOutputStream, EOFException, IOException}
abstract class Serializer(val service: Service) {
diff --git a/src/actors/scala/actors/remote/TcpService.scala b/src/actors/scala/actors/remote/TcpService.scala
index b3a1add806..09fb80a80b 100644
--- a/src/actors/scala/actors/remote/TcpService.scala
+++ b/src/actors/scala/actors/remote/TcpService.scala
@@ -8,15 +8,22 @@
// $Id$
+
package scala.actors.remote
+
+import java.lang.Thread
+import java.lang.SecurityException
+
import java.io.{BufferedReader, DataInputStream, DataOutputStream,
IOException, InputStreamReader, OutputStreamWriter,
PrintWriter}
import java.net.{InetAddress, ServerSocket, Socket, UnknownHostException}
+import compat.Platform
+
object TcpService {
- val random = new java.util.Random(System.currentTimeMillis())
+ val random = new java.util.Random(Platform.currentTime)
def generatePort: int = {
var portnum = 0
diff --git a/src/compiler/scala/tools/ant/ScalaTool.scala b/src/compiler/scala/tools/ant/ScalaTool.scala
index 01920985bb..13a46070b5 100644
--- a/src/compiler/scala/tools/ant/ScalaTool.scala
+++ b/src/compiler/scala/tools/ant/ScalaTool.scala
@@ -9,6 +9,8 @@
package scala.tools.ant {
+ import compat.StringBuilder
+
import scala.collection.immutable.{Map, ListMap}
import java.io.{File, InputStream, FileWriter}
@@ -267,12 +269,12 @@ package scala.tools.ant {
bufbuf
}
}
- val builder = new StringBuffer()
+ val builder = new StringBuilder()
while (chars.hasNext) {
val char = chars.next
if (char == '@') {
var char = chars.next
- val token = new StringBuffer()
+ val token = new StringBuilder()
while (chars.hasNext && char != '@') {
token.append(char)
char = chars.next
diff --git a/src/compiler/scala/tools/ant/Scalac.scala b/src/compiler/scala/tools/ant/Scalac.scala
index 602712553b..c373e68f6a 100644
--- a/src/compiler/scala/tools/ant/Scalac.scala
+++ b/src/compiler/scala/tools/ant/Scalac.scala
@@ -8,6 +8,8 @@
package scala.tools.ant {
+ import java.lang.System.getProperty
+
import java.io.File
import java.net.{URL, URLClassLoader}
import java.util.{ArrayList, Vector}
@@ -67,10 +69,8 @@ package scala.tools.ant {
*/
class Scalac extends MatchingTask {
- private val SCALA_PRODUCT: String =
- System.getProperty("scala.product", "scalac")
- private val SCALA_VERSION: String =
- System.getProperty("scala.version", "Unknown version")
+ private val SCALA_PRODUCT: String = getProperty("scala.product", "scalac")
+ private val SCALA_VERSION: String = getProperty("scala.version", "Unknown version")
/** The unique Ant file utilities instance to use in this task. */
private val fileUtils = FileUtils.newFileUtils()
diff --git a/src/compiler/scala/tools/nsc/CompileClient.scala b/src/compiler/scala/tools/nsc/CompileClient.scala
index 552c4b3644..ada6f83ea4 100644
--- a/src/compiler/scala/tools/nsc/CompileClient.scala
+++ b/src/compiler/scala/tools/nsc/CompileClient.scala
@@ -6,19 +6,20 @@
package scala.tools.nsc
+import java.lang.System.getProperty
+import java.io.File
+import java.io.PrintWriter
+import java.io.{BufferedReader, InputStreamReader}
import scala.tools.util.StringOps
-import java.io._
+import compat.StringBuilder
/** The main class for NSC, a compiler for the programming
* language Scala.
*/
object CompileClient {
- val PRODUCT: String =
- System.getProperty("scala.tool.name", "scalac")
- val VERSION: String =
- System.getProperty("scala.tool.version", "unknown version")
- val COPYRIGHT: String =
- System.getProperty("scala.copyright", "(c) 2002-2006 LAMP/EPFL")
+ val PRODUCT: String = getProperty("scala.tool.name", "scalac")
+ val VERSION: String = getProperty("scala.tool.version", "unknown version")
+ val COPYRIGHT: String = getProperty("scala.copyright", "(c) 2002-2006 LAMP/EPFL")
val versionMsg = PRODUCT + " " + VERSION + " -- " + COPYRIGHT
@@ -39,7 +40,7 @@ object CompileClient {
def normalize(args: Array[String]): Pair[String, String] = {
var i = 0
- val vmArgs = new StringBuffer
+ val vmArgs = new StringBuilder
var serverAdr = ""
while (i < args.length) {
val arg = args(i)
@@ -82,12 +83,12 @@ object CompileClient {
val Pair(vmArgs, serverAdr) = normalize(args)
if(version) {
- System.out.println(versionMsg)
+ Console.println(versionMsg)
return
}
if (verbose) {
- System.out.println("[Server arguments: " + args.mkString("", " ", "]"))
- System.out.println("[VM arguments: " + vmArgs + "]")
+ Console.println("[Server arguments: " + args.mkString("", " ", "]"))
+ Console.println("[VM arguments: " + vmArgs + "]")
}
val socket = if (serverAdr == "") CompileSocket.getOrCreateSocket(vmArgs)
else CompileSocket.getSocket(serverAdr)
@@ -100,13 +101,13 @@ object CompileClient {
while (fromServer != null) {
if(CompileSocket.errorPattern.matcher(fromServer).matches)
sawerror = true
- System.out.println(fromServer)
+ Console.println(fromServer)
fromServer = in.readLine()
}
in.close()
out.close()
socket.close()
- System.exit(if (sawerror) 1 else 0)
+ exit(if (sawerror) 1 else 0)
}
}
diff --git a/src/compiler/scala/tools/nsc/CompileServer.scala b/src/compiler/scala/tools/nsc/CompileServer.scala
index 8d940f39c3..d407dd111a 100644
--- a/src/compiler/scala/tools/nsc/CompileServer.scala
+++ b/src/compiler/scala/tools/nsc/CompileServer.scala
@@ -11,7 +11,11 @@ import scala.tools.nsc.util.FakePos //Position
import scala.tools.nsc.reporters.{Reporter, ConsoleReporter}
import scala.tools.nsc.doc.DocGenerator
import scala.concurrent.Process.spawn
-import java.io._
+import java.lang.System
+import java.lang.Thread
+import java.lang.Runtime
+import java.io.File
+import java.io.{PrintStream, BufferedOutputStream, FileOutputStream}
/** The main class for NSC, a compiler for the programming
* language Scala.
diff --git a/src/compiler/scala/tools/nsc/CompileSocket.scala b/src/compiler/scala/tools/nsc/CompileSocket.scala
index 1c600a1a38..d326aa433f 100644
--- a/src/compiler/scala/tools/nsc/CompileSocket.scala
+++ b/src/compiler/scala/tools/nsc/CompileSocket.scala
@@ -6,7 +6,10 @@
package scala.tools.nsc
-import java.io._
+import java.lang.{Thread, System, Runtime}
+import java.lang.NumberFormatException
+import java.io.{File, IOException, PrintWriter, FileOutputStream}
+import java.io.{BufferedReader, FileReader}
import java.net._
object CompileSocket {
@@ -131,7 +134,7 @@ object CompileSocket {
else
try {
for (val i <- 1 until hits.length) hits(i).delete()
- Integer.parseInt(hits(0).getName)
+ hits(0).getName.toInt
} catch {
case ex: NumberFormatException =>
fatal(ex.toString() +
@@ -209,7 +212,7 @@ object CompileSocket {
else {
val hostName = serverAdr.substring(0, cpos)
val port = try {
- Integer.parseInt(serverAdr.substring(cpos+1))
+ serverAdr.substring(cpos+1).toInt
} catch {
case ex: Throwable =>
fatal("Malformed server address: " + serverAdr + "; exiting")
diff --git a/src/compiler/scala/tools/nsc/CompilerCommand.scala b/src/compiler/scala/tools/nsc/CompilerCommand.scala
index 23e1b122be..d5bd523efa 100644
--- a/src/compiler/scala/tools/nsc/CompilerCommand.scala
+++ b/src/compiler/scala/tools/nsc/CompilerCommand.scala
@@ -7,6 +7,8 @@
package scala.tools.nsc
+import compat.StringBuilder
+
/** A class representing command line info for scalac */
class CompilerCommand(arguments: List[String], error: String => unit, interactive: boolean) {
private var fs: List[String] = List()
@@ -28,7 +30,7 @@ class CompilerCommand(arguments: List[String], error: String => unit, interactiv
val helpSyntaxColumnWidth: int =
Iterable.max(settings.allSettings map (. helpSyntax.length()))
def format(s: String): String = {
- val buf = new StringBuffer(s)
+ val buf = new StringBuilder(s)
var i = s.length()
while (i < helpSyntaxColumnWidth) { buf.append(' '); i = i + 1 }
buf.toString()
diff --git a/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala b/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala
index 65b6745edd..4503abf241 100644
--- a/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala
+++ b/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala
@@ -6,6 +6,8 @@
// $Id$
package scala.tools.nsc
+
+import java.lang.System.getProperties
import scala.collection.mutable.Queue
class GenericRunnerSettings(error: String => Unit)
@@ -60,7 +62,7 @@ extends Settings(error) {
/** Apply the specified properties to the current JVM */
def applyToCurrentJVM = {
- val systemProps = System.getProperties
+ val systemProps = getProperties
for(val Pair(key, value) <- props.toList)
systemProps.setProperty(key, value)
}
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala
index 5907c217a7..3a0e38c5c0 100644
--- a/src/compiler/scala/tools/nsc/Global.scala
+++ b/src/compiler/scala/tools/nsc/Global.scala
@@ -8,6 +8,7 @@ package scala.tools.nsc
import java.io._
import java.nio.charset._
+import compat.Platform.currentTime
import scala.tools.nsc.io.{SourceReader, AbstractFile}
import scala.tools.nsc.util.ClassPath
import scala.tools.nsc.util.{Position, SourceFile}
@@ -98,7 +99,7 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable
def error(msg: String) = reporter.error(null, msg)
def warning(msg: String) = reporter.warning(null, msg)
- def inform(msg: String) = System.err.println(msg)
+ def inform(msg: String) = Console.err.println(msg)
def inform[T](msg: String, value: T): T = { inform(msg+value); value }
//reporter.info(null, msg, true)
@@ -107,9 +108,9 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable
if (settings.verbose.value) inform("[" + msg + "]")
def informTime(msg: String, start: Long) =
- informProgress(msg + " in " + (System.currentTimeMillis() - start) + "ms")
+ informProgress(msg + " in " + (currentTime - start) + "ms")
- def log(msg: Object): unit =
+ def log(msg: AnyRef): unit =
if (settings.log contains phase.name) inform("[log " + phase + "] " + msg)
class ErrorWithPosition(val pos: Int, val error: Throwable) extends Error
@@ -460,14 +461,14 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable
else false
def compileSources(sources: List[SourceFile]): unit = {
- val startTime = System.currentTimeMillis()
+ val startTime = currentTime
reporter.reset
for (val source <- sources)
addUnit(new CompilationUnit(source))
globalPhase = firstPhase
while (globalPhase != terminalPhase && reporter.errors == 0) {
- val startTime = System.currentTimeMillis()
+ val startTime = currentTime
phase = globalPhase
globalPhase.run
if (settings.print contains globalPhase.name)
diff --git a/src/compiler/scala/tools/nsc/Interpreter.scala b/src/compiler/scala/tools/nsc/Interpreter.scala
index b61d6ae483..836512bae0 100644
--- a/src/compiler/scala/tools/nsc/Interpreter.scala
+++ b/src/compiler/scala/tools/nsc/Interpreter.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc
+import java.lang.{Class, ClassLoader}
import java.io.{File, PrintWriter, StringWriter}
import java.net.URLClassLoader
@@ -353,7 +354,7 @@ class Interpreter(val settings: Settings, reporter: Reporter, out: PrintWriter)
.get)
var argsHolder: Array[Any] = null // XXX this roundabout approach is to try and make sure the value is boxed
argsHolder = List(value).toArray
- setterMethod.invoke(null, argsHolder.asInstanceOf[Array[Object]])
+ setterMethod.invoke(null, argsHolder.asInstanceOf[Array[AnyRef]])
interpret("val " + name + " = " + binderName + ".value")
}
diff --git a/src/compiler/scala/tools/nsc/InterpreterLoop.scala b/src/compiler/scala/tools/nsc/InterpreterLoop.scala
index bbd7112129..c3024d93f3 100644
--- a/src/compiler/scala/tools/nsc/InterpreterLoop.scala
+++ b/src/compiler/scala/tools/nsc/InterpreterLoop.scala
@@ -6,6 +6,8 @@
package scala.tools.nsc
+import java.lang.System
+import java.lang.ClassLoader
import java.io._
import scala.tools.nsc.reporters.{Reporter, ConsoleReporter}
diff --git a/src/compiler/scala/tools/nsc/Main.scala b/src/compiler/scala/tools/nsc/Main.scala
index 85db0730f0..712fb38704 100644
--- a/src/compiler/scala/tools/nsc/Main.scala
+++ b/src/compiler/scala/tools/nsc/Main.scala
@@ -5,6 +5,7 @@
// $Id$
package scala.tools.nsc
+import java.lang.System.getProperty
import scala.tools.nsc.util.FakePos //{Position}
import scala.tools.nsc.reporters.{Reporter, ConsoleReporter}
import scala.tools.nsc.doc.DocGenerator
@@ -13,14 +14,11 @@ import scala.tools.nsc.doc.DocGenerator
/** The main class for NSC, a compiler for the programming
* language Scala.
*/
-object Main extends Object with EvalLoop {
+object Main extends AnyRef with EvalLoop {
- val PRODUCT: String =
- System.getProperty("scala.tool.name", "scalac")
- val VERSION: String =
- System.getProperty("scala.tool.version", "unknown version")
- val COPYRIGHT: String =
- System.getProperty("scala.copyright", "(c) 2002-2006 LAMP/EPFL")
+ val PRODUCT: String = getProperty("scala.tool.name", "scalac")
+ val VERSION: String = getProperty("scala.tool.version", "unknown version")
+ val COPYRIGHT: String = getProperty("scala.copyright", "(c) 2002-2006 LAMP/EPFL")
val versionMsg = PRODUCT + " " + VERSION + " -- " + COPYRIGHT
val prompt = "\nnsc> "
@@ -96,7 +94,7 @@ object Main extends Object with EvalLoop {
def main(args: Array[String]): unit = {
process(args)
- System.exit(if (reporter.errors > 0) 1 else 0)
+ exit(if (reporter.errors > 0) 1 else 0)
}
}
diff --git a/src/compiler/scala/tools/nsc/MainGenericRunner.scala b/src/compiler/scala/tools/nsc/MainGenericRunner.scala
index fb7699b566..1a8a3e02b9 100644
--- a/src/compiler/scala/tools/nsc/MainGenericRunner.scala
+++ b/src/compiler/scala/tools/nsc/MainGenericRunner.scala
@@ -7,6 +7,8 @@
package scala.tools.nsc
+import java.lang.System.getProperty
+import java.lang.{ClassNotFoundException, NoSuchMethodException}
import java.io.File
import java.lang.reflect.InvocationTargetException
@@ -20,7 +22,7 @@ object MainGenericRunner {
* input classpath is empty; otherwise do not.
*/
def addClasspathExtras(classpath: String): String = {
- val scalaHome = System.getProperty("scala.home")
+ val scalaHome = getProperty("scala.home")
if (scalaHome == null)
return classpath
@@ -62,8 +64,7 @@ object MainGenericRunner {
}
if (settings.version.value) {
- val version =
- System.getProperty("scala.tool.version", "unknown version")
+ val version = getProperty("scala.tool.version", "unknown version")
Console.println(
"Scala code runner version " + version + " -- " +
"(c) 2002-2006 LAMP/EPFL")
diff --git a/src/compiler/scala/tools/nsc/MainTokenMetric.scala b/src/compiler/scala/tools/nsc/MainTokenMetric.scala
index 0fe6e0a2cc..8eaf3243f6 100644
--- a/src/compiler/scala/tools/nsc/MainTokenMetric.scala
+++ b/src/compiler/scala/tools/nsc/MainTokenMetric.scala
@@ -6,7 +6,7 @@
package scala.tools.nsc
-//import java.io._
+import compat.Math.log
import scala.tools.nsc.reporters.{Reporter, ConsoleReporter}
/** The main class for NSC, a compiler for the programming
@@ -28,7 +28,7 @@ object MainTokenMetric {
i = i + 1
s.nextToken()
}
- var j = 0 ; while(j + Math.log(i)/ Math.log(10) < 7) {
+ var j = 0 ; while(j + log(i) / log(10) < 7) {
j = j+1
Console.print(' ')
}
@@ -56,7 +56,7 @@ object MainTokenMetric {
def main(args: Array[String]): unit = {
process(args)
- System.exit(if (reporter.errors > 0) 1 else 0)
+ exit(if (reporter.errors > 0) 1 else 0)
}
}
diff --git a/src/compiler/scala/tools/nsc/ObjectRunner.scala b/src/compiler/scala/tools/nsc/ObjectRunner.scala
index b3cbc88dc9..7e3442ce02 100644
--- a/src/compiler/scala/tools/nsc/ObjectRunner.scala
+++ b/src/compiler/scala/tools/nsc/ObjectRunner.scala
@@ -7,6 +7,8 @@
package scala.tools.nsc
+import java.lang.Class
+import java.lang.{ClassNotFoundException, NoSuchMethodException}
import java.io.File
import java.lang.reflect.{Method,Modifier}
import java.net.URLClassLoader
diff --git a/src/compiler/scala/tools/nsc/ScriptRunner.scala b/src/compiler/scala/tools/nsc/ScriptRunner.scala
index 3d7ec1d214..c0b92195f3 100644
--- a/src/compiler/scala/tools/nsc/ScriptRunner.scala
+++ b/src/compiler/scala/tools/nsc/ScriptRunner.scala
@@ -11,6 +11,7 @@ import java.io.{BufferedReader, File, FileInputStream, FileOutputStream,
import java.util.jar.{JarEntry, JarOutputStream}
import java.lang.reflect.InvocationTargetException
+import compat.StringBuilder
import scala.tools.nsc.io.PlainFile
import scala.tools.nsc.reporters.ConsoleReporter
import scala.tools.nsc.util.{CompoundSourceFile, SourceFile, SourceFileFragment}
@@ -93,7 +94,7 @@ object ScriptRunner {
/** Read the entire contents of a file as a String. */
private def contentsOfFile(filename: String): String = {
- val strbuf = new StringBuffer
+ val strbuf = new StringBuilder
val reader = new FileReader(filename)
val cbuf = new Array[Char](1024)
while(true) {
@@ -199,7 +200,7 @@ object ScriptRunner {
var fromServer = in.readLine()
while (fromServer != null) {
- System.out.println(fromServer)
+ Console.println(fromServer)
if (CompileSocket.errorPattern.matcher(fromServer).matches)
compok = false
diff --git a/src/compiler/scala/tools/nsc/Settings.scala b/src/compiler/scala/tools/nsc/Settings.scala
index cef810c3a5..c67dfeb272 100644
--- a/src/compiler/scala/tools/nsc/Settings.scala
+++ b/src/compiler/scala/tools/nsc/Settings.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc
+import java.lang.System
import java.io.File
class Settings(error: String => unit) {
diff --git a/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala b/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala
index 5ccc143479..cf3d9f8809 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala
@@ -6,7 +6,8 @@
package scala.tools.nsc.ast
-import scala.concurrent._
+import compat.StringBuilder
+import scala.concurrent.Lock
import symtab.Flags._
import java.lang.Math
@@ -215,7 +216,7 @@ abstract class TreeBrowsers {
def update(v: AnyRef): Unit = {
val t: Tree = v.asInstanceOf[Tree]
- val str = new StringBuffer()
+ val str = new StringBuilder()
var buf = new StringWriter()
t match {
diff --git a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
index ad447d6196..e5bc54cfcf 100644
--- a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
@@ -6,6 +6,8 @@
package scala.tools.nsc.ast
+import compat.Platform.{EOL => LINE_SEPARATOR}
+import compat.StringBuilder
import java.io.{OutputStream, PrintWriter, Writer}
import symtab.Flags._
@@ -19,8 +21,6 @@ abstract class TreePrinters {
protected val indentStep = 2
protected var indentString = " " // 40
- val LINE_SEPARATOR = System.getProperty("line.separator", "\n")
-
def flush = out.flush()
def indent = indentMargin = indentMargin + indentStep
@@ -106,7 +106,7 @@ abstract class TreePrinters {
def printAttributes(tree: Tree): unit = {
def attrInfoToString(attr: AttrInfo): String = {
- val str = new StringBuffer()
+ val str = new StringBuilder()
attr match {
case Triple(tp, args, nvPairs) =>
str.append(tp.toString())
diff --git a/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala b/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala
index 0adf872a81..3db2bd7673 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc.ast.parser
+import compat.StringBuilder
import scala.collection.immutable.ListMap
import scala.collection.mutable
import scala.tools.nsc.util.Position
@@ -44,7 +45,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
/*[Duplicate]*/ var ch: Char = _
/** character buffer, for names */
- /*[Duplicate]*/ protected val cbuf = new StringBuffer()
+ /*[Duplicate]*/ protected val cbuf = new StringBuilder()
/** append Unicode character to name buffer*/
/*[Duplicate]*/ protected def putChar(c: char) = cbuf.append(c)
@@ -174,7 +175,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
xToken('A')
xToken('[')
val pos1 = pos
- val sb: StringBuffer = new StringBuffer()
+ val sb: StringBuilder = new StringBuilder()
while (true) {
if (ch==']' &&
{ sb.append(ch); nextch; ch == ']' } &&
@@ -190,7 +191,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
def xUnparsed: Tree = {
val pos1 = pos
- val sb: StringBuffer = new StringBuffer()
+ val sb: StringBuilder = new StringBuilder()
while (true) {
if (ch=='<' &&
{ sb.append(ch); nextch; ch == '/' } &&
@@ -228,14 +229,14 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
while (ch != ';') {
ch match {
case '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' =>
- i = i * base + Character.digit(ch, base)
+ i = i * base + ch.asDigit
case 'a' | 'b' | 'c' | 'd' | 'e' | 'f'
| 'A' | 'B' | 'C' | 'D' | 'E' | 'F' =>
if (!hex)
reportSyntaxError("hex char not allowed in decimal char ref\n"
+"Did you mean to write &#x ?");
else
- i = i * base + Character.digit(ch, base)
+ i = i * base + ch.asDigit
case _ =>
reportSyntaxError("character '"+ch+" not allowed in char ref\n")
}
@@ -249,7 +250,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
* see [15]
*/
/*[Duplicate]*/ def xComment: Tree = {
- val sb: StringBuffer = new StringBuffer()
+ val sb: StringBuilder = new StringBuilder()
xToken('-')
xToken('-')
while (true) {
@@ -306,7 +307,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
ts.append(xEmbeddedExpr)
else {
appendText(p, ts, xText)/*
- val str = new StringBuffer("{")
+ val str = new StringBuilder("{")
str.append(xText)
nextch
appendText(p, ts, str.toString())*/
@@ -430,7 +431,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
* see [15]
*/
/*[Duplicate]*/ def xProcInstr: Tree = {
- val sb:StringBuffer = new StringBuffer();
+ val sb:StringBuilder = new StringBuilder();
val n = xName;
if( xml.Parsing.isSpace( ch ) ) {
xSpace;
@@ -478,7 +479,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
//}
}
- //val cbuf = new StringBuffer();
+ //val cbuf = new StringBuilder();
/** append Unicode character to name buffer*/
//private def putChar(c: char) = cbuf.append( c );
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
index 9fc9b574a5..35f4c7b404 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Scanners.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc.ast.parser
+import compat.StringBuilder
import Tokens._
import scala.tools.nsc.util.{Position, SourceFile}
import SourceFile.{LF, FF, CR, SU}
@@ -61,7 +62,7 @@ trait Scanners requires SyntaxAnalyzer {
/** character buffer for literals
*/
- val cbuf = new StringBuffer()
+ val cbuf = new StringBuilder()
/** append Unicode character to "lit" buffer
*/
@@ -75,7 +76,7 @@ trait Scanners requires SyntaxAnalyzer {
/** buffer for the documentation comment
*/
- var docBuffer: StringBuffer = null
+ var docBuffer: StringBuilder = null
/** add the given character to the documentation buffer
*/
@@ -416,7 +417,7 @@ trait Scanners requires SyntaxAnalyzer {
var openComments = 1
in.next
if (in.ch == '*' && onlyPresentation)
- docBuffer = new StringBuffer("/**")
+ docBuffer = new StringBuilder("/**")
while (openComments > 0) {
do {
do {
@@ -819,7 +820,7 @@ trait Scanners requires SyntaxAnalyzer {
def enterKeyword(n: Name, tokenId: int): unit = {
while (tokenId >= tokenName.length) {
val newTokName = new Array[Name](tokenName.length * 2)
- System.arraycopy(tokenName, 0, newTokName, 0, newTokName.length)
+ Array.copy(tokenName, 0, newTokName, 0, newTokName.length)
tokenName = newTokName
}
tokenName(tokenId) = n
diff --git a/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala b/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala
index 1363d4fecb..b3bdcce65f 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala
@@ -7,6 +7,7 @@
package scala.tools.nsc.backend.icode;
+import compat.StringBuilder;
import scala.tools.nsc.ast._;
import scala.collection.mutable.Map;
import scala.tools.nsc.util.Position;
@@ -163,14 +164,14 @@ trait BasicBlocks requires ICodes {
if (i < instrs.length) {
val newInstrs = new Array[Instruction](instrs.length + is.length - 1);
changed = true;
- System.arraycopy(instrs, 0, newInstrs, 0, i);
+ Array.copy(instrs, 0, newInstrs, 0, i);
var j = i;
for (val x <- is) {
newInstrs(j) = x;
j = j + 1;
}
if (i + 1 < instrs.length)
- System.arraycopy(instrs, i + 1, newInstrs, j, instrs.length - i - 1)
+ Array.copy(instrs, i + 1, newInstrs, j, instrs.length - i - 1)
instrs = newInstrs;
}
@@ -335,7 +336,7 @@ trait BasicBlocks requires ICodes {
);
// Instead of it, rather use a printer
- def print() : unit = print(System.out);
+ def print() : unit = print(java.lang.System.out);
def print(out: java.io.PrintStream) : unit = {
out.println("block #"+label+" :");
@@ -347,7 +348,7 @@ trait BasicBlocks requires ICodes {
}
def fullString: String = {
- val buf = new StringBuffer();
+ val buf = new StringBuilder();
buf.append("Block ").append(label.toString());
buf.append("\nSuccessors: ").append(successors);
buf.append("\nPredecessors: ").append(predecessors);
diff --git a/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala b/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala
index c9ecf46c52..a6a3f2c2d8 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala
@@ -546,7 +546,7 @@ abstract class Checkers {
//////////////// Error reporting /////////////////////////
def error(msg: String): Unit = {
- System.out.println(method.toString() + " in block: " + basicBlock.label)
+ Console.println(method.toString() + " in block: " + basicBlock.label)
printLastIntructions
Checkers.this.global.error("ICode checker: " + method + ": " + msg)
@@ -562,7 +562,7 @@ abstract class Checkers {
buf = i :: buf
printed = printed + 1
});
- buf foreach System.out.println
+ buf foreach Console.println
Console.println("at: " + clasz.cunit.position(buf.head.pos))
}
diff --git a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
index 9a6d31895b..9c20e63d3c 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
@@ -7,6 +7,7 @@
package scala.tools.nsc.backend.icode
+import compat.StringBuilder
import scala.collection.mutable.{Map, HashMap}
import scala.tools.nsc.symtab._
@@ -1547,7 +1548,7 @@ abstract class GenICode extends SubComponent {
var handlerCount = 0
override def toString(): String = {
- val buf = new StringBuffer()
+ val buf = new StringBuilder()
buf.append("\tpackage: ").append(packg).append('\n')
buf.append("\tclazz: ").append(clazz).append('\n')
buf.append("\tmethod: ").append(method).append('\n')
diff --git a/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala b/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala
index 6977f82e4e..4806c575b3 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/ICodes.scala
@@ -46,14 +46,14 @@ abstract class ICodes extends AnyRef
/** Print all classes and basic blocks. Used for debugging. */
def dump: Unit = {
- val printer = new global.icodePrinter.TextPrinter(new PrintWriter(System.out, true),
+ val printer = new global.icodePrinter.TextPrinter(new PrintWriter(Console.out, true),
new global.icodes.DumpLinearizer());
global.icodes.classes.values foreach { c => printer.printClass(c); }
}
def dump(m: global.icodes.IMethod) = {
- val printer = new global.icodePrinter.TextPrinter(new PrintWriter(System.out, true),
+ val printer = new global.icodePrinter.TextPrinter(new PrintWriter(Console.out, true),
new global.icodes.DumpLinearizer());
printer.printMethod(m);
}
diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala
index dfaf52a24c..a2b3d94736 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala
@@ -1,5 +1,6 @@
package scala.tools.nsc.backend.icode.analysis;
+import compat.StringBuilder
import scala.collection.mutable.{HashMap, Map}
import scala.collection.immutable.{Set, ListSet}
@@ -99,7 +100,7 @@ abstract class Liveness {
} /* def interpret */
override def toString(): String = {
- val buf = new StringBuffer();
+ val buf = new StringBuilder();
for (val b <- method.code.blocks.toList) {
buf.append("\nlive-in(" + b + ")=" + in(b) + "\nlive-out(" + b + ")=" + out(b));
}
diff --git a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala
index 3c06d98bad..db2f6eb64d 100644
--- a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala
+++ b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala
@@ -10,6 +10,7 @@ import java.io.{File, FileOutputStream, FileWriter}
import java.util.StringTokenizer
import java.util.regex.Pattern
+import compat.Platform.{EOL => LINE_SEPARATOR}
import scala.collection.immutable._
import scala.collection.mutable.ListBuffer
import scala.tools.nsc._
@@ -938,8 +939,6 @@ abstract class DocGenerator extends Models {
val root = <b></b>
- private val LINE_SEPARATOR = System.getProperty("line.separator", "\n")
-
private val NAME_SUFFIX_OBJECT = "$object"
private val NAME_SUFFIX_PACKAGE = "$package"
private val FILE_EXTENSION_HTML = ".html"
diff --git a/src/compiler/scala/tools/nsc/io/AbstractFile.scala b/src/compiler/scala/tools/nsc/io/AbstractFile.scala
index 5d2321c96e..9fe5ccfbd7 100644
--- a/src/compiler/scala/tools/nsc/io/AbstractFile.scala
+++ b/src/compiler/scala/tools/nsc/io/AbstractFile.scala
@@ -70,7 +70,7 @@ object AbstractFile {
* <code>global.settings.encoding.value</code>.
* </p>
*/
-abstract class AbstractFile extends Object with Iterable[AbstractFile] {
+abstract class AbstractFile extends AnyRef with Iterable[AbstractFile] {
//########################################################################
// Public Methods
diff --git a/src/compiler/scala/tools/nsc/io/VirtualFile.scala b/src/compiler/scala/tools/nsc/io/VirtualFile.scala
index 1f3d62c241..63e8674125 100644
--- a/src/compiler/scala/tools/nsc/io/VirtualFile.scala
+++ b/src/compiler/scala/tools/nsc/io/VirtualFile.scala
@@ -7,6 +7,7 @@
package scala.tools.nsc.io
+import compat.Math.MIN_LONG
import java.io.{File,InputStream}
/** This class implements an empty abstract regular file.
@@ -43,7 +44,7 @@ class VirtualFile(val name: String, _path: String) extends AbstractFile {
def isDirectory: Boolean = false
/** Returns the time that this abstract file was last modified. */
- def lastModified: Long = Long.MIN_VALUE
+ def lastModified: Long = MIN_LONG
/** Returns all abstract subfiles of this abstract directory. */
def elements: Iterator[AbstractFile] = {
diff --git a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala
index c123ba96a1..1fb184d9a4 100644
--- a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala
+++ b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc.matching
+import compat.StringBuilder
import scala.tools.nsc.util.Position
/** This trait ...
@@ -292,7 +293,7 @@ trait PatternMatchers requires (transform.ExplicitOuter with PatternNodes) {
/** pretty printer
*/
def print(): Unit =
- Console.println(root.and.print("", new StringBuffer()).toString())
+ Console.println(root.and.print("", new StringBuilder()).toString())
/** enters a sequence of cases into the pattern matcher
*/
@@ -323,9 +324,9 @@ trait PatternMatchers requires (transform.ExplicitOuter with PatternNodes) {
val bd = new Array[Array[ValDef]](tree.bound.length + 1)
val ng = new Array[Tree](tree.guard.length + 1)
val nb = new Array[Tree](tree.body.length + 1)
- System.arraycopy(tree.bound, 0, bd, 0, tree.bound.length)
- System.arraycopy(tree.guard, 0, ng, 0, tree.guard.length)
- System.arraycopy(tree.body, 0, nb, 0, tree.body.length)
+ Array.copy(tree.bound, 0, bd, 0, tree.bound.length)
+ Array.copy(tree.guard, 0, ng, 0, tree.guard.length)
+ Array.copy(tree.body, 0, nb, 0, tree.body.length)
bd(bd.length - 1) = bound
ng(ng.length - 1) = guard
nb(nb.length - 1) = body
@@ -577,7 +578,7 @@ print()
}
val caseAccs = casted.tpe.symbol.caseFieldAccessors;
- if (caseAccs.length <= index) System.out.println("selecting " + index + " in case fields of " + casted.tpe.symbol + "=" + casted.tpe.symbol.caseFieldAccessors);//debug
+ if (caseAccs.length <= index) Console.println("selecting " + index + " in case fields of " + casted.tpe.symbol + "=" + casted.tpe.symbol.caseFieldAccessors);//debug
val ts = caseAccs(index);
val accTree = typed(Apply(Select(ident, ts), List()))
val accType = accTree.tpe
diff --git a/src/compiler/scala/tools/nsc/matching/PatternNodes.scala b/src/compiler/scala/tools/nsc/matching/PatternNodes.scala
index ee1ff7f674..eda7336711 100644
--- a/src/compiler/scala/tools/nsc/matching/PatternNodes.scala
+++ b/src/compiler/scala/tools/nsc/matching/PatternNodes.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc.matching
+import compat.StringBuilder
import scala.tools.nsc.util.Position
trait PatternNodes requires transform.ExplicitOuter {
@@ -171,14 +172,14 @@ trait PatternNodes requires transform.ExplicitOuter {
"<unknown pat>"
}
- def print(indent: String, sb: StringBuffer): StringBuffer = {
+ def print(indent: String, sb: StringBuilder): StringBuilder = {
val patNode = this
def cont = if (patNode.or != null) patNode.or.print(indent, sb) else sb
def newIndent(s: String) = {
val removeBar: Boolean = (null == patNode.or)
- val sb = new StringBuffer()
+ val sb = new StringBuilder()
sb.append(indent)
if (removeBar)
sb.setCharAt(indent.length() - 1, ' ')
@@ -316,7 +317,7 @@ trait PatternNodes requires transform.ExplicitOuter {
//@maybe is corrected now? bq
if (numVars == boundVars.length) {
val newVars = new Array[ValDef](numVars * 2)
- System.arraycopy(boundVars, 0, newVars, 0, numVars)
+ Array.copy(boundVars, 0, newVars, 0, numVars)
this.boundVars = newVars
}
sym.setInfo(tpe)
@@ -326,7 +327,7 @@ trait PatternNodes requires transform.ExplicitOuter {
def getBoundVars(): Array[ValDef] = {
val newVars = new Array[ValDef](numVars)
- System.arraycopy(boundVars, 0, newVars, 0, numVars)
+ Array.copy(boundVars, 0, newVars, 0, numVars)
newVars
}
diff --git a/src/compiler/scala/tools/nsc/models/Models.scala b/src/compiler/scala/tools/nsc/models/Models.scala
index ac5782abdd..07286a0153 100644
--- a/src/compiler/scala/tools/nsc/models/Models.scala
+++ b/src/compiler/scala/tools/nsc/models/Models.scala
@@ -86,7 +86,7 @@ abstract class Models {
else if (term0.isTypeParameter) TPARAM
else if (term0.isType) TPARAM
else {
- // System.err.println("UNRECOGNIZED SYMBOL: " + term0 + " " + name);
+ // Console.err.println("UNRECOGNIZED SYMBOL: " + term0 + " " + name);
null
}
} else {
@@ -200,20 +200,20 @@ abstract class Models {
def member(tree: Tree, members: List[Tree]): Tree = tree
def update0(members1: List[Tree]): Boolean = {
- // System.err.println("update0 " + this + " " + members1)
+ // Console.err.println("update0 " + this + " " + members1)
if (members1.length == 1 && members1.head.isInstanceOf[PackageDef])
return update0(members1.head.asInstanceOf[PackageDef].stats)
val marked = new HashSet[HasTree]
var updated = false
for (val mmbr1 <- members1) if (mmbr1.isInstanceOf[PackageDef]) {
- System.err.println("PACKAGE: " + mmbr1.symbol + " " + members1.length)
+ Console.err.println("PACKAGE: " + mmbr1.symbol + " " + members1.length)
} else if (isMember(mmbr1)) {
val mmbr2 = member(mmbr1, members1)
if (mmbr2 != null) {
var found = false
for (val mmbr <- members) if (!found && mmbr.replacedBy(mmbr2)) {
- //System.err.println("REPLACE: " + mmbr + " with " + mmbr2)
+ //Console.err.println("REPLACE: " + mmbr + " with " + mmbr2)
mmbr.mods0 = mods1(mmbr1)
found = true
updated = mmbr.update(mmbr2) || updated
@@ -231,7 +231,7 @@ abstract class Models {
marked += add
}
}
- // System.err.println("update1 " + this + " " + members + " " + marked)
+ // Console.err.println("update1 " + this + " " + members + " " + marked)
}
val sz = members.size
members.intersect(marked)
diff --git a/src/compiler/scala/tools/nsc/models/SemanticTokens.scala b/src/compiler/scala/tools/nsc/models/SemanticTokens.scala
index e191fc171d..6404a4fa28 100644
--- a/src/compiler/scala/tools/nsc/models/SemanticTokens.scala
+++ b/src/compiler/scala/tools/nsc/models/SemanticTokens.scala
@@ -6,6 +6,8 @@
package scala.tools.nsc.models
+import java.lang.Thread
+import java.lang.Character.isJavaIdentifierPart
import scala.collection.mutable.{HashMap,HashSet}
import scala.tools.nsc.Global
import scala.tools.nsc.symtab.{Flags,Names}
@@ -173,7 +175,7 @@ class SemanticTokens(val compiler: Global) {
else if (term0.isTypeParameter) TPARAM
else if (term0.isType ) TPARAM
else {
- // System.err.println("UNRECOGNIZED SYMBOL: " + term0 + " " + name);
+ // Console.err.println("UNRECOGNIZED SYMBOL: " + term0 + " " + name);
null
}
}
@@ -203,7 +205,7 @@ class SemanticTokens(val compiler: Global) {
val pos = eatKeywords(unit.source, tree.pos)
if (pos == NoPos) {
// inner types.
- // System.err.println("NOPOS: " + tree.getClass() + " " + (new Position(unit.source, tree.pos)).dbgString);
+ // Console.err.println("NOPOS: " + tree.getClass() + " " + (new Position(unit.source, tree.pos)).dbgString);
//Thread.dumpStack();
} else buildDef(tree.symbol, eatKeywords(unit.source, tree.pos));
tree match {
@@ -221,7 +223,7 @@ class SemanticTokens(val compiler: Global) {
{
val pos : Int = if (tree.name.toString().equals("<init>")) NoPos else
eatKeywords(unit.source, tree.pos);
- if (false) System.err.println("VALDEF: tree=" + tree + " sym=" + tree.symbol + " pos0=" +
+ if (false) Console.err.println("VALDEF: tree=" + tree + " sym=" + tree.symbol + " pos0=" +
tree.symbol.pos + " alias=" + tree.symbol.alias + " pos1=" +
pos + " pos2=" + tree.pos + " " + unit.source.dbg(tree.pos) + " " + tree.symbol.hasFlag(Flags.SYNTHETIC));
@@ -243,21 +245,21 @@ class SemanticTokens(val compiler: Global) {
try {
//TPT=scala.Iterator[DocGenerator.this.compiler0.CompilationUnit] 260 class scala.tools.nsc.ast.Trees$TypeTree scala.Iterator[DocGenerator.this.compiler0.CompilationUnit] class scala.tools.nsc.symtab.Types$$anon$5
if (tree.tpt == null || tree.tpt.tpe == null) {
- //System.err.println("BAD: " + tree.tpt + " in " + tree);
+ //Console.err.println("BAD: " + tree.tpt + " in " + tree);
} else {
- //System.err.println("TPT=" + tree.tpt + " " + tree.tpt.pos + " " + tree.tpt.getClass() + " " + tree.tpt.tpe + " " + tree.tpt.tpe.getClass() + " " + tree.tpt.tpe.getClass().getSuperclass());
+ //Console.err.println("TPT=" + tree.tpt + " " + tree.tpt.pos + " " + tree.tpt.getClass() + " " + tree.tpt.tpe + " " + tree.tpt.tpe.getClass() + " " + tree.tpt.tpe.getClass().getSuperclass());
build(tree.tpt);
}
} catch {
case e: Error =>
- System.err.println("VALDEF: " + tree + " " + tree.tpt + " " + tree.pos + " " + tree.tpt.pos);
+ Console.err.println("VALDEF: " + tree + " " + tree.tpt + " " + tree.pos + " " + tree.tpt.pos);
throw e;
}
- //System.err.println("RHS: " + tree.rhs + " " + tree.rhs.getClass() + " " + tree.rhs.getClass().getSuperclass());
+ //Console.err.println("RHS: " + tree.rhs + " " + tree.rhs.getClass() + " " + tree.rhs.getClass().getSuperclass());
build(tree.rhs);
}
case tree: PackageDef =>
- //System.err.println("PACKAGE: " + tree.name);
+ //Console.err.println("PACKAGE: " + tree.name);
if (false) {
val pos = eatKeywords(unit.source, tree.pos)
if (pos != NoPos)
@@ -272,7 +274,7 @@ class SemanticTokens(val compiler: Global) {
unit.source.skipWhitespace(arg.pos + ("val ").length())
else if (unit.source.content(arg.pos) == ':') {
var posx : Int = arg.pos
- while (Character.isWhitespace(unit.source.content(posx - 1))) posx = posx - 1
+ while (unit.source.content(posx - 1).isWhitespace) posx = posx - 1
posx - name.length()
} else arg.pos
buildDef(arg.symbol, pos)
@@ -286,99 +288,99 @@ class SemanticTokens(val compiler: Global) {
if (clazz == null) Nil
else clazz :: classes(clazz.getSuperclass())
if (tree.original == null) {
- if (false) System.err.println("NO_ORIGINAL: " + tree + " " + tree.tpe + " " + classes(tree.tpe.getClass()));
+ if (false) Console.err.println("NO_ORIGINAL: " + tree + " " + tree.tpe + " " + classes(tree.tpe.getClass()));
}
if (tree.tpe != null) buildT(tree1, tree.tpe);
def buildT( tree : Tree, tpe : Type) : Unit = if (tree.pos != NoPos) tpe match {
case tpe0 : TypeRef => tree match {
case apt : AppliedTypeTree =>
buildUse(tpe.symbol, apt.tpt.pos, tpe0);
- //System.err.println("APT: " + treex + " vs. " + treex.original);
- //System.err.println("APT: " + treex.pos + " vs. " + treex.original.pos + " " + unit.source.dbg(treex.original.pos));
- //System.err.println("APT: " + apt.tpt + " sym0=" + apt.tpt.symbol + " sym1=" + tpe0.sym + " apt.args=" + apt.args + " tpe0.args=" + tpe0.args);
+ //Console.err.println("APT: " + treex + " vs. " + treex.original);
+ //Console.err.println("APT: " + treex.pos + " vs. " + treex.original.pos + " " + unit.source.dbg(treex.original.pos));
+ //Console.err.println("APT: " + apt.tpt + " sym0=" + apt.tpt.symbol + " sym1=" + tpe0.sym + " apt.args=" + apt.args + " tpe0.args=" + tpe0.args);
buildTs (apt.args, tpe0.args);
case ident : Ident => buildUse(tpe0.sym, ident.pos, tpe0);
case select : Select =>
if (select.symbol == NoSymbol)
- if (false) System.err.println("BUILD_SELECT: " + select + " @ " + tpe0 + " SYM=" + select.symbol + " " + unit.source.dbg(select.pos));
+ if (false) Console.err.println("BUILD_SELECT: " + select + " @ " + tpe0 + " SYM=" + select.symbol + " " + unit.source.dbg(select.pos));
try {
// build(select);
buildUse(tpe0.symbol, selectPos(select), tpe0);
- //System.err.println("QUALIFIER: " + select.qualifier + " " + unit.source.dbg(select.qualifier.pos) + " " + tpe0.prefix + " " + tpe0.prefix.getClass() + " " + tpe0.prefix.getClass().getSuperclass() +" " + tpe0.prefix.widen + " " + tpe0.prefix.toLongString);
+ //Console.err.println("QUALIFIER: " + select.qualifier + " " + unit.source.dbg(select.qualifier.pos) + " " + tpe0.prefix + " " + tpe0.prefix.getClass() + " " + tpe0.prefix.getClass().getSuperclass() +" " + tpe0.prefix.widen + " " + tpe0.prefix.toLongString);
buildT(select.qualifier, tpe0.prefix);
} catch {
case e : Error =>
- System.err.println("BUILD_SELECT: " + select + " @ " + tpe0 + " " + unit.source.dbg(select.pos));
+ Console.err.println("BUILD_SELECT: " + select + " @ " + tpe0 + " " + unit.source.dbg(select.pos));
throw e;
}
case tpt : TypeTree =>
if (tpt.symbol != null) {
- System.err.println("SYM0 " + tpt.symbol + " " + unit.source.dbg(tpt.pos));
+ Console.err.println("SYM0 " + tpt.symbol + " " + unit.source.dbg(tpt.pos));
buildUse(tpt.symbol, tpt.pos, tpe0);
} else if (tpe0.symbol != null) {
- //System.err.println("TYPE_SYM1 " + tpe0.symbol + " " + unit.source.dbg(tpt.pos));
+ //Console.err.println("TYPE_SYM1 " + tpe0.symbol + " " + unit.source.dbg(tpt.pos));
buildUse(tpe0.symbol, tpt.pos, tpe0);
} else {
- System.err.println("UNKNOWN TPT0: " + unit.source.dbg(tpt.pos) + " tpt=" + tpt + " " + tpt.symbol + " tpe0="+ tpe0 + " " + tpe0.symbol + " tpe0.args=" + tpe0.args);
+ Console.err.println("UNKNOWN TPT0: " + unit.source.dbg(tpt.pos) + " tpt=" + tpt + " " + tpt.symbol + " tpe0="+ tpe0 + " " + tpe0.symbol + " tpe0.args=" + tpe0.args);
}
case sft : SelectFromTypeTree =>
build(sft.qualifier); // XXX: broken
- if (false) System.err.println("SFTT: " + sft + " sym=" + sft.symbol + " selector=" + sft.selector + " qual=" + sft.qualifier + " qual.sym=" +
+ if (false) Console.err.println("SFTT: " + sft + " sym=" + sft.symbol + " selector=" + sft.selector + " qual=" + sft.qualifier + " qual.sym=" +
sft.qualifier.symbol +
" qual.pos=" + unit.source.dbg(sft.qualifier.pos) + " symbol=" + sft.symbol + " type=" + tpe0 +
" type.sym=" + tpe0.symbol);
- case _ => System.err.println("UNKNOWN TPT2: " + tree + " vs. " + tpe0 + " " + tree.getClass() + " " + unit.source.content(tree.pos));
+ case _ => Console.err.println("UNKNOWN TPT2: " + tree + " vs. " + tpe0 + " " + tree.getClass() + " " + unit.source.content(tree.pos));
}
case tpe0 : MethodType => tree match {
case tpt: TypeTree =>
if (tpt.original != null) buildT(tpt.original, tpe);
else {
- System.err.println("UNKNOWN TPT3: " + tree + " vs. " + tpe0 + " " + unit.source.content(tree.pos));
+ Console.err.println("UNKNOWN TPT3: " + tree + " vs. " + tpe0 + " " + unit.source.content(tree.pos));
}
case ident : Ident => buildT(ident, tpe0.resultType);
case select : Select => buildT(select, tpe0.resultType);
- case _ => System.err.println("UNKNOWN TPE: " + tree + " vs. " + tpe0 + " " + tree.getClass());
+ case _ => Console.err.println("UNKNOWN TPE: " + tree + " vs. " + tpe0 + " " + tree.getClass());
}
case tpe0 : RefinedType => tree match {
case cpt : CompoundTypeTree =>
buildTs(cpt.templ.parents, tpe0.parents);
case _ : TypeTree =>
- // System.err.println("UNKNOWN TPE13: " + dbg(tree) + " tpe0=" + tpe0 + " " + tpe0.parents);
+ // Console.err.println("UNKNOWN TPE13: " + dbg(tree) + " tpe0=" + tpe0 + " " + tpe0.parents);
case _ =>
- if (false) System.err.println("UNKNOWN TPE5: " + dbg(tree) + " tpe0=" + tpe0 + " " + tpe0.parents);
+ if (false) Console.err.println("UNKNOWN TPE5: " + dbg(tree) + " tpe0=" + tpe0 + " " + tpe0.parents);
}
case tpe0 : ThisType => tree match {
case stt : SingletonTypeTree => stt.ref match {
case ths : This => build(ths);
- case _ => System.err.println("UNKNOWN TPE11: " + tpe0 + " " + stt + " " + stt.ref + " " + stt.ref.getClass() + " " + unit.source.dbg(tree.pos));
+ case _ => Console.err.println("UNKNOWN TPE11: " + tpe0 + " " + stt + " " + stt.ref + " " + stt.ref.getClass() + " " + unit.source.dbg(tree.pos));
}
case tt : This =>
case _ : Ident =>
case _ : Select =>
case tt : TypeTree =>
- if (false) System.err.println("UNKNOWN TPE12: " + tpe0 + " " + tree + " " + tree.getClass() + " " + unit.source.dbg(tree.pos));
+ if (false) Console.err.println("UNKNOWN TPE12: " + tpe0 + " " + tree + " " + tree.getClass() + " " + unit.source.dbg(tree.pos));
case _ =>
- if (false) System.err.println("UNKNOWN TPE10: " + tpe0 + " " + tree + " " + tree.getClass() + " " + unit.source.dbg(tree.pos));
+ if (false) Console.err.println("UNKNOWN TPE10: " + tpe0 + " " + tree + " " + tree.getClass() + " " + unit.source.dbg(tree.pos));
}
case tpe0 : SingleType => tree match {
case ident : Ident => buildUse(tpe0.sym, ident.pos, tpe0);
case select : Select =>
buildUse(tpe0.symbol, selectPos(select), tpe0);
- //System.err.println("QUALIFIER-0: " + select.qualifier + " " + unit.source.dbg(select.qualifier.pos) + " " + tpe0.prefix + " " + tpe0.prefix.getClass() + " " + tpe0.prefix.getClass().getSuperclass() +" " + tpe0.prefix.widen + " " + tpe0.prefix.toLongString);
+ //Console.err.println("QUALIFIER-0: " + select.qualifier + " " + unit.source.dbg(select.qualifier.pos) + " " + tpe0.prefix + " " + tpe0.prefix.getClass() + " " + tpe0.prefix.getClass().getSuperclass() +" " + tpe0.prefix.widen + " " + tpe0.prefix.toLongString);
buildT(select.qualifier, tpe0.prefix);
case _ =>
- if (false) System.err.println("UNKNOWN TPE8: " + tree + " " + unit.source.dbg(tree.pos) + " TPE=" + tpe0 + " PRE=" + tpe0.pre + " SYM=" + tpe0.sym);
+ if (false) Console.err.println("UNKNOWN TPE8: " + tree + " " + unit.source.dbg(tree.pos) + " TPE=" + tpe0 + " PRE=" + tpe0.pre + " SYM=" + tpe0.sym);
}
case ctype : ConstantType =>
- if (false) System.err.println("UNKNOWN CONSTANT_TYPE: " + tree + " " + ctype + " " + unit.source.dbg(tree.pos));
+ if (false) Console.err.println("UNKNOWN CONSTANT_TYPE: " + tree + " " + ctype + " " + unit.source.dbg(tree.pos));
case ErrorType =>
case _ => {
- if (false) System.err.println("UNKNOWN TPE4: " + tree + " " + tpe + " " + tpe.getClass() + " " + unit.source.dbg(tree.pos));
+ if (false) Console.err.println("UNKNOWN TPE4: " + tree + " " + tpe + " " + tpe.getClass() + " " + unit.source.dbg(tree.pos));
}
};
def buildTs(trees : List[Tree], types : List[Type]): Unit = if (!trees.isEmpty && !types.isEmpty) {
@@ -395,7 +397,7 @@ class SemanticTokens(val compiler: Global) {
};
case tree: AbsTypeDef =>
- //System.err.println("ABS: " + tree.symbol + " " + unit.source.dbg(tree.namePos) + " " + unit.source.dbg(tree.pos));
+ //Console.err.println("ABS: " + tree.symbol + " " + unit.source.dbg(tree.namePos) + " " + unit.source.dbg(tree.pos));
buildDef(tree.symbol, tree.namePos)
buildDef(tree.symbol, tree.pos)
build(tree.lo)
@@ -409,32 +411,32 @@ class SemanticTokens(val compiler: Global) {
try {
build(tree.qualifier)
} catch {
- case e : Error => System.err.println("SELECTQ: " + tree + " " + tree.qualifier + " " + unit.source.dbg(tree.qualifier.pos)); throw e;
+ case e : Error => Console.err.println("SELECTQ: " + tree + " " + tree.qualifier + " " + unit.source.dbg(tree.qualifier.pos)); throw e;
}
try {
if (tree.pos >= unit.source.content.length) {
- if (false) System.err.println("BAD_SELECT_QUALIFIER " + tree + " @ " + unit.source.dbg(tree.pos));
+ if (false) Console.err.println("BAD_SELECT_QUALIFIER " + tree + " @ " + unit.source.dbg(tree.pos));
} else {
- //System.err.println("SELECT-0: " + tree.symbol + " " + unit.source.dbg(tree.pos) + " " + (tree.pos - selectPos(tree)));
+ //Console.err.println("SELECT-0: " + tree.symbol + " " + unit.source.dbg(tree.pos) + " " + (tree.pos - selectPos(tree)));
buildUse(tree.symbol, selectPos(tree), tree.tpe);
}
} catch {
- case e : Error => System.err.println("SELECTU: " + tree + " " + tree.symbol + " " + unit.source.dbg(tree.pos)); throw e;
+ case e : Error => Console.err.println("SELECTU: " + tree + " " + tree.symbol + " " + unit.source.dbg(tree.pos)); throw e;
}
case tree: TypeApply =>
- //System.err.println("TYPE_APPLY: " + tree + " " + unit.source.dbg(tree.pos));
+ //Console.err.println("TYPE_APPLY: " + tree + " " + unit.source.dbg(tree.pos));
if (!tree.args.isEmpty) {
- //System.err.println("ARGS: " + unit.source.dbg(tree.args0.head.pos));
+ //Console.err.println("ARGS: " + unit.source.dbg(tree.args0.head.pos));
}
build(tree.fun)
build(tree.args)
case tree: Apply =>
- //System.err.println("NORM_APPLY: " + tree + " " + unit.source.dbg(tree.pos));
+ //Console.err.println("NORM_APPLY: " + tree + " " + unit.source.dbg(tree.pos));
build(tree.fun)
build(tree.args)
case tree: GenericApply =>
- //System.err.println("GEN_APPLY: " + tree + " " + unit.source.dbg(tree.pos));
+ //Console.err.println("GEN_APPLY: " + tree + " " + unit.source.dbg(tree.pos));
build(tree.fun)
build(tree.args)
case tree: Typed =>
@@ -443,8 +445,8 @@ class SemanticTokens(val compiler: Global) {
case tree: Block =>
if (false) {
if (!tree.stats.isEmpty)
- System.err.println("BLOCKS: " + tree.stats.head + " " + tree.stats.head.getClass());
- System.err.println("BLOCKE: " + tree.expr + " " + tree.expr.getClass())
+ Console.err.println("BLOCKS: " + tree.stats.head + " " + tree.stats.head.getClass());
+ Console.err.println("BLOCKE: " + tree.expr + " " + tree.expr.getClass())
}
build(tree.stats)
build(tree.expr)
@@ -456,7 +458,7 @@ class SemanticTokens(val compiler: Global) {
case tree : Assign => build(tree.lhs); build(tree.rhs);
case tree : If => build(tree.cond); build(tree.thenp); build(tree.elsep);
case tree : New =>
- //System.err.println("NEW: " + tree.tpt + " " + tree.tpt.getClass());
+ //Console.err.println("NEW: " + tree.tpt + " " + tree.tpt.getClass());
build(tree.tpt);
case tree : Match => build(tree.selector); build(tree.cases);
case tree : Return => build(tree.expr);
@@ -465,11 +467,11 @@ class SemanticTokens(val compiler: Global) {
case tree : Try => build(tree.block); build(tree.catches); build(tree.finalizer);
case tree : Alternative => build(tree.trees);
case tree : This =>
- //System.err.println("THIS: " + tree.symbol + " " + tree.qual + " " + unit.source.dbg(tree.pos) + " " + tree.tpe);
+ //Console.err.println("THIS: " + tree.symbol + " " + tree.qual + " " + unit.source.dbg(tree.pos) + " " + tree.tpe);
if (tree.symbol != null) buildUse(tree.symbol, tree.pos, tree.tpe);
//Thread.dumpStack();
case tree : AliasTypeDef =>
- //System.err.println("ALIAS: " + tree);
+ //Console.err.println("ALIAS: " + tree);
build(tree.rhs); build(tree.tparams); buildDef(tree.symbol, tree.pos);
case tree : DocDef => build(tree.definition);
case tree: Import => build(tree.expr)
@@ -479,7 +481,7 @@ class SemanticTokens(val compiler: Global) {
case tree: Literal => ;
case EmptyTree => ;
case _ => ;
- System.err.println("BAIL: " + unit.source.dbg(tree0.pos) + " " + tree0 + " " + tree0.getClass());
+ Console.err.println("BAIL: " + unit.source.dbg(tree0.pos) + " " + tree0 + " " + tree0.getClass());
}
} catch {
case t: Throwable =>
@@ -493,7 +495,7 @@ class SemanticTokens(val compiler: Global) {
if (term.hasFlag(Flags.ACCESSOR))
buildSym(analyzer.underlying(term), pos, isDef, tpe)
else if (pos == NoPos) {
- //System.err.println("NOPOS: " + term)
+ //Console.err.println("NOPOS: " + term)
//Thread.dumpStack()
}
else if (term != NoSymbol) {
@@ -504,15 +506,15 @@ class SemanticTokens(val compiler: Global) {
if (cs.length + pos > buf.length) return
else while (idx < cs.length) {
if (buf(pos + idx) != cs(idx)) {
- //System.err.println("MISMATCH: " + name + "[" + idx + "] " + unit.source.dbg(pos));
+ //Console.err.println("MISMATCH: " + name + "[" + idx + "] " + unit.source.dbg(pos));
//Thread.dumpStack();
return;
}
else idx = idx + 1;
}
if (cs.length + pos + 1 < buf.length) {
- if (Character.isJavaIdentifierPart(buf(pos + cs.length))) {
- //System.err.println("MISMATCH: " + name + "[last] " + unit.source.dbg(pos));
+ if (isJavaIdentifierPart(buf(pos + cs.length))) {
+ //Console.err.println("MISMATCH: " + name + "[last] " + unit.source.dbg(pos));
return;
}
}
@@ -527,7 +529,7 @@ class SemanticTokens(val compiler: Global) {
val buf = unit.source.content
if (tree.pos >= buf.length) {
if (false) {
- System.err.println("" + tree + "@" + tree.pos + " not in " +
+ Console.err.println("" + tree + "@" + tree.pos + " not in " +
unit.source.file.name + "[" + buf.length + "]");
Thread.dumpStack()
throw new Error()
@@ -539,7 +541,7 @@ class SemanticTokens(val compiler: Global) {
if (buf(tree.pos) != '.') tree.pos
else {
def f(x : Int) : Int = {
- if (Character.isWhitespace(buf(x))) f(x + 1)
+ if (buf(x).isWhitespace) f(x + 1)
else x
}
f(tree.pos + 1)
@@ -592,10 +594,10 @@ class SemanticTokens(val compiler: Global) {
sem.symbol.pos == tok.symbol.pos) return;
if (false) {
- System.err.println("NOT_GAP: " + sem.symbol + " " + sem.symbol.getClass() + " " + unit.source.dbg(sem.symbol.pos) + " " + sem.symbol.flags);
- System.err.println("NOT_GAP: " + tok.symbol + " " + tok.symbol.getClass() + " " + unit.source.dbg(tok.symbol.pos) + " " + tok.symbol.flags);
- System.err.println("LIST: " + this);
- System.err.println("POS: " + unit.source.dbg(offset));
+ Console.err.println("NOT_GAP: " + sem.symbol + " " + sem.symbol.getClass() + " " + unit.source.dbg(sem.symbol.pos) + " " + sem.symbol.flags);
+ Console.err.println("NOT_GAP: " + tok.symbol + " " + tok.symbol.getClass() + " " + unit.source.dbg(tok.symbol.pos) + " " + tok.symbol.flags);
+ Console.err.println("LIST: " + this);
+ Console.err.println("POS: " + unit.source.dbg(offset));
Thread.dumpStack();
throw new Error();
@@ -603,9 +605,9 @@ class SemanticTokens(val compiler: Global) {
} else {
val gap = cursor.token.asInstanceOf[Gap];
if (!(offset - cursor.offset + tok.length <= gap.length)) {
- System.err.println("LIST =" + this);
- System.err.println("OFFSET=" + offset + " " + tok + " " + tok.length);
- System.err.println(" " + cursor.offset + " " + gap.length);
+ Console.err.println("LIST =" + this);
+ Console.err.println("OFFSET=" + offset + " " + tok + " " + tok.length);
+ Console.err.println(" " + cursor.offset + " " + gap.length);
throw new Error();
}
if (offset == cursor.offset) {
diff --git a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
index 8713947d68..8c59c21f19 100644
--- a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
+++ b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala
@@ -7,6 +7,8 @@
// $Id$
package scala.tools.nsc.reporters
+
+import compat.StringBuilder
import scala.tools.nsc.util.{FakePos, Position}
import java.io.BufferedReader
@@ -39,9 +41,7 @@ class ConsoleReporter(reader : BufferedReader, writer : PrintWriter) extends Abs
//########################################################################
// Public Constructors
- def this() = this(
- new BufferedReader(new InputStreamReader(System.in)),
- new PrintWriter(System.err, true))
+ def this() = this(Console.in, new PrintWriter(Console.err, true))
//########################################################################
// Public Methods - Count
@@ -71,7 +71,7 @@ class ConsoleReporter(reader : BufferedReader, writer : PrintWriter) extends Abs
def printMessage(posIn : Position, msg : String) : Unit = {
if (posIn != null) {
val pos = posIn.inUltimateSource
- val buf = new StringBuffer(msg)
+ val buf = new StringBuilder(msg)
buf.insert(0, " ")
if (pos.line != Position.NOLINE)
buf.insert(0, ":" + pos.line)
@@ -95,7 +95,7 @@ class ConsoleReporter(reader : BufferedReader, writer : PrintWriter) extends Abs
}
/** Prints the column marker of the given position. */
def printColumnMarker(pos : Position) = if (pos != null) {
- val buffer = new StringBuffer(pos.column)
+ val buffer = new StringBuilder(pos.column)
var i = 1
while (i < pos.column) {
buffer.append(' ')
diff --git a/src/compiler/scala/tools/nsc/symtab/Constants.scala b/src/compiler/scala/tools/nsc/symtab/Constants.scala
index 75d781df72..8dbc4c90cb 100644
--- a/src/compiler/scala/tools/nsc/symtab/Constants.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Constants.scala
@@ -6,6 +6,10 @@
package scala.tools.nsc.symtab
+
+import java.lang.Integer.toOctalString
+import compat.StringBuilder
+
import classfile.PickleFormat._
trait Constants requires SymbolTable {
@@ -194,10 +198,10 @@ trait Constants requires SymbolTable {
def escapedStringValue: String = {
def escape(text: String): String = {
- val buf = new StringBuffer
+ val buf = new StringBuilder
for (val c <- Iterator.fromString(text))
- if (Character.isISOControl(c))
- buf.append("\\0" + Integer.toOctalString(c.asInstanceOf[Int]))
+ if (c.isControl)
+ buf.append("\\0" + toOctalString(c.asInstanceOf[Int]))
else
buf.append(c)
buf.toString
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index ff67a62b3c..da4a1cd384 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -271,7 +271,8 @@ trait Definitions requires SymbolTable {
if (module) sym.info.member(fullname.subName(i, j)).suchThat(.hasFlag(MODULE))
else sym.info.member(fullname.subName(i, j).toTypeName)
if (result == NoSymbol) {
- if (settings.debug.value) { System.out.println(sym.info); System.out.println(sym.info.members) }//debug
+ if (settings.debug.value)
+ { Console.println(sym.info); Console.println(sym.info.members) }//debug
throw new FatalError((if (module) "object " else "class ") + fullname + " not found.")
}
result
@@ -476,7 +477,7 @@ trait Definitions requires SymbolTable {
else flatNameString(sym.owner, separator) + "$" + sym.simpleName;
def signature1(etp: Type): String = {
if (etp.symbol == ArrayClass) "[" + signature1(erasure(etp.typeArgs.head))
- else if (isValueClass(etp.symbol)) String.valueOf(abbrvTag(etp.symbol))
+ else if (isValueClass(etp.symbol)) abbrvTag(etp.symbol).toString()
else "L" + flatNameString(etp.symbol, '/') + ";"
}
val etp = erasure(tp)
@@ -531,8 +532,9 @@ trait Definitions requires SymbolTable {
AllClass = newClass(ScalaPackageClass, nme.Nothing, anyparam)
.setFlag(ABSTRACT | TRAIT | FINAL)
- ClassClass = getClass("java.lang.Class")
StringClass = getClass("java.lang.String")
+
+ ClassClass = getClass("java.lang.Class")
ThrowableClass = getClass("java.lang.Throwable")
NullPointerExceptionClass = getClass("java.lang.NullPointerException")
NonLocalReturnExceptionClass = getClass("scala.runtime.NonLocalReturnException")
diff --git a/src/compiler/scala/tools/nsc/symtab/Names.scala b/src/compiler/scala/tools/nsc/symtab/Names.scala
index 0d868c8537..dc73601a48 100644
--- a/src/compiler/scala/tools/nsc/symtab/Names.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Names.scala
@@ -70,7 +70,7 @@ class Names {
while (i < len) {
if (nc + i == chrs.length) {
val newchrs = new Array[char](chrs.length * 2)
- System.arraycopy(chrs, 0, newchrs, 0, chrs.length)
+ Array.copy(chrs, 0, newchrs, 0, chrs.length)
chrs = newchrs
}
chrs(nc + i) = cs(offset + i)
@@ -178,7 +178,7 @@ class Names {
* @param offset ...
*/
final def copyChars(cs: Array[char], offset: int) =
- System.arraycopy(chrs, index, cs, offset, len)
+ Array.copy(chrs, index, cs, offset, len)
/** return the ascii representation of this name
*/
diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala
index fd9fecad8c..be4c397d7d 100644
--- a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala
+++ b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc.symtab
+import compat.Platform.currentTime
import java.io.{File, IOException}
import scala.collection.mutable.HashMap
@@ -50,7 +51,7 @@ abstract class SymbolLoaders {
override def complete(root: Symbol): unit = {
try {
- val start = System.currentTimeMillis()
+ val start = currentTime
val currentphase = phase
doComplete(root)
phase = currentphase
diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolTable.scala b/src/compiler/scala/tools/nsc/symtab/SymbolTable.scala
index 8556e54cef..ccc33587dd 100644
--- a/src/compiler/scala/tools/nsc/symtab/SymbolTable.scala
+++ b/src/compiler/scala/tools/nsc/symtab/SymbolTable.scala
@@ -18,7 +18,7 @@ abstract class SymbolTable extends Names
{
def settings: Settings
def rootLoader: LazyType
- def log(msg: Object): unit
+ def log(msg: AnyRef): unit
/** Are we compiling for the J2ME CLDC platform? */
def forCLDC: Boolean
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
index 58276f2a42..cd8d3c2ea2 100644
--- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
@@ -58,7 +58,7 @@ trait Symbols requires SymbolTable {
else if (isClass) ret = ret + ("class").length()
else if (isModule) ret = ret + ("object").length()
else ret = ret + ("var").length()
- while (Character.isWhitespace(buf(ret))) ret = ret + 1
+ while (buf(ret).isWhitespace) ret = ret + 1
ret
}
else if (isValue) {
@@ -68,7 +68,7 @@ trait Symbols requires SymbolTable {
(buf(pos + 2) == 'l') &&
(buf(pos + 3) == ' ')) {
var pos0 = pos + 4
- while (pos0 < buf.length && Character.isWhitespace(buf(pos0)))
+ while (pos0 < buf.length && buf(pos0).isWhitespace)
pos0 = pos0 + 1
pos0
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index 0f101322b4..680aec5c5b 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -6,6 +6,7 @@
package scala.tools.nsc.symtab
+import compat.Platform.currentTime
import scala.collection.mutable.ListBuffer
import scala.tools.nsc.util.{HashSet, Position}
import Flags._
@@ -225,7 +226,7 @@ trait Types requires SymbolTable {
}
*/
case _ =>
- //System.out.println("" + this + ".memberType(" + sym +":" + sym.tpe +")" + sym.ownerChain);//DEBUG
+ //Console.println("" + this + ".memberType(" + sym +":" + sym.tpe +")" + sym.ownerChain);//DEBUG
sym.tpe.asSeenFrom(this, sym.owner)
}
}
@@ -258,13 +259,13 @@ trait Types requires SymbolTable {
/** Is this type a subtype of that type? */
def <:<(that: Type): boolean = {
if (util.Statistics.enabled) subtypeCount = subtypeCount + 1
- val startTime = if (util.Statistics.enabled) System.currentTimeMillis() else 0l
+ val startTime = if (util.Statistics.enabled) currentTime else 0l
val result =
((this eq that) ||
(if (explainSwitch) explain("<", isSubType, this, that)
else isSubType(this, that)));
if (util.Statistics.enabled)
- subtypeMillis = subtypeMillis + System.currentTimeMillis() - startTime
+ subtypeMillis = subtypeMillis + currentTime - startTime
result
}
@@ -370,7 +371,7 @@ trait Types requires SymbolTable {
val this1 = adaptToNewRunMap(this)
if (this1 eq this) sym.validTo = period(currentRunId, phaseId(sym.validTo))
else {
- //System.out.println("new type of " + sym + "=" + this1 + ", used to be " + this);//DEBUG
+ //Console.println("new type of " + sym + "=" + this1 + ", used to be " + this);//DEBUG
sym.setInfo(this1)
}
}
@@ -409,9 +410,9 @@ trait Types requires SymbolTable {
//TODO: use narrow only for modules? (correct? efficiency gain?)
def findMember(name: Name, excludedFlags: int, requiredFlags: long, stableOnly: boolean): Symbol = {
if (util.Statistics.enabled) findMemberCount = findMemberCount + 1
- val startTime = if (util.Statistics.enabled) System.currentTimeMillis() else 0l
+ val startTime = if (util.Statistics.enabled) currentTime else 0l
- //System.out.println("find member " + name.decode + " in " + this + ":" + this.baseClasses)//DEBUG
+ //Console.println("find member " + name.decode + " in " + this + ":" + this.baseClasses)//DEBUG
var members: Scope = null
var member: Symbol = NoSymbol
var excluded = excludedFlags | DEFERRED
@@ -435,7 +436,7 @@ trait Types requires SymbolTable {
if (name.isTypeName || stableOnly) {
checkMalformedSwitch = savedCheckMalformedSwitch
if (util.Statistics.enabled)
- findMemberMillis = findMemberMillis + System.currentTimeMillis() - startTime
+ findMemberMillis = findMemberMillis + currentTime - startTime
return sym
} else if (member == NoSymbol) {
member = sym
@@ -476,7 +477,7 @@ trait Types requires SymbolTable {
} // while (continue)
checkMalformedSwitch = savedCheckMalformedSwitch
if (util.Statistics.enabled)
- findMemberMillis = findMemberMillis + System.currentTimeMillis() - startTime
+ findMemberMillis = findMemberMillis + currentTime - startTime
if (members == null) {
if (util.Statistics.enabled) if (member == NoSymbol) noMemberCount = noMemberCount + 1;
member
@@ -668,7 +669,7 @@ trait Types requires SymbolTable {
try {
if (util.Statistics.enabled)
compoundClosureCount = compoundClosureCount + 1
- //System.out.println("computing closure of " + symbol.tpe + " " + parents)//DEBUG
+ //Console.println("computing closure of " + symbol.tpe + " " + parents)//DEBUG
val buf = new ListBuffer[Type]
buf += symbol.tpe
var clSize = 1
@@ -713,7 +714,7 @@ trait Types requires SymbolTable {
}
closureCache = new Array[Type](clSize)
buf.copyToArray(closureCache, 0)
- //System.out.println("closureCache of " + symbol.tpe + " = " + List.fromArray(closureCache))//DEBUG
+ //Console.println("closureCache of " + symbol.tpe + " = " + List.fromArray(closureCache))//DEBUG
var j = 0
while (j < clSize) {
closureCache(j) match {
@@ -729,7 +730,7 @@ trait Types requires SymbolTable {
}
j = j + 1
}
- //System.out.println("closure of " + symbol.tpe + " = " + List.fromArray(closureCache))//DEBUG
+ //Console.println("closure of " + symbol.tpe + " = " + List.fromArray(closureCache))//DEBUG
closureCache
} catch {
case ex: MalformedClosure =>
@@ -744,7 +745,7 @@ trait Types requires SymbolTable {
closureCache = null
closureCache = computeClosure
}
- //System.out.println("closure(" + symbol + ") = " + List.fromArray(closureCache));//DEBUG
+ //Console.println("closure(" + symbol + ") = " + List.fromArray(closureCache));//DEBUG
}
if (closureCache == null)
throw new TypeError("illegal cyclic reference involving " + symbol)
@@ -755,7 +756,7 @@ trait Types requires SymbolTable {
def computeBaseClasses: List[Symbol] =
if (parents.isEmpty) List(symbol)
else {
- //System.out.println("computing base classes of " + symbol + " at phase " + phase);//DEBUG
+ //Console.println("computing base classes of " + symbol + " at phase " + phase);//DEBUG
// optimized, since this seems to be performance critical
val superclazz = parents.head
var mixins = parents.tail
@@ -1267,8 +1268,8 @@ trait Types requires SymbolTable {
case PolyType(tparams, restpe) => restpe.subst(tparams, args)
case ErrorType => tycon
case _ =>
- System.out.println(tycon.getClass())
- System.out.println(tycon.$tag())
+ Console.println(tycon.getClass())
+ Console.println(tycon.$tag())
throw new Error()
}
@@ -1488,7 +1489,7 @@ trait Types requires SymbolTable {
if (symclazz == clazz && (pre.widen.symbol isNonBottomSubClass symclazz))
pre.baseType(symclazz) match {
case TypeRef(_, basesym, baseargs) =>
-// System.out.println("instantiating " + sym + " from " + basesym + " with " + basesym.typeParams + " and " + baseargs);//DEBUG
+// Console.println("instantiating " + sym + " from " + basesym + " with " + basesym.typeParams + " and " + baseargs);//DEBUG
if (basesym.typeParams.length != baseargs.length)
throw new TypeError(
"something is wrong (wrong class file?): "+basesym+
@@ -1782,7 +1783,7 @@ trait Types requires SymbolTable {
sym1 != NoSymbol &&
sym1.info =:= sym2.info.substThis(sym2.owner, sym1.owner.thisType)
}
- //System.out.println("is same? " + tp1 + " " + tp2 + " " + tp1.symbol.owner + " " + tp2.symbol.owner)//DEBUG
+ //Console.println("is same? " + tp1 + " " + tp2 + " " + tp1.symbol.owner + " " + tp2.symbol.owner)//DEBUG
isSameTypes(parents1, parents2) && isSubScope(ref1, ref2) && isSubScope(ref2, ref1)
case Pair(MethodType(pts1, res1), MethodType(pts2, res2)) =>
(pts1.length == pts2.length &&
@@ -1858,7 +1859,7 @@ trait Types requires SymbolTable {
case Pair(ConstantType(_), ConstantType(_)) => tp1 =:= tp2
case Pair(TypeRef(pre1, sym1, args1), TypeRef(pre2, sym2, args2)) =>
- //System.out.println("isSubType " + tp1 + " " + tp2);//DEBUG
+ //Console.println("isSubType " + tp1 + " " + tp2);//DEBUG
def isSubArgs(tps1: List[Type], tps2: List[Type],
tparams: List[Symbol]): boolean = (
tps1.isEmpty && tps2.isEmpty
@@ -1883,7 +1884,7 @@ trait Types requires SymbolTable {
||
sym1 == AllClass
||
- // System.out.println("last chance " + sym1 + " " + sym2 + " " + sym2.isClass + " " (sym2 isSubClass ObjectClass))
+ // Console.println("last chance " + sym1 + " " + sym2 + " " + sym2.isClass + " " (sym2 isSubClass ObjectClass))
sym1 == AllRefClass && sym2.isClass && (sym2 isSubClass ObjectClass))
case Pair(MethodType(pts1, res1), MethodType(pts2, res2)) =>
(pts1.length == pts2.length &&
@@ -2004,7 +2005,7 @@ trait Types requires SymbolTable {
private def addClosure(tp: Type, cl: Array[Type]): Array[Type] = {
val cl1 = new Array[Type](cl.length + 1)
cl1(0) = tp
- System.arraycopy(cl, 0, cl1, 1, cl.length)
+ Array.copy(cl, 0, cl1, 1, cl.length)
cl1
}
@@ -2464,11 +2465,11 @@ trait Types requires SymbolTable {
* <code>arg2</code> and print trace of computation.
*/
private def explain[T](op: String, p: (Type, T) => boolean, tp1: Type, arg2: T): boolean = {
- System.out.println(indent + tp1 + " " + op + " " + arg2 + "?")
+ Console.println(indent + tp1 + " " + op + " " + arg2 + "?")
indent = indent + " "
val result = p(tp1, arg2)
indent = indent.substring(0, indent.length() - 2)
- System.out.println(indent + result)
+ Console.println(indent + result)
result
}
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala b/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala
index 0163ea5724..acf1d5fea5 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala
@@ -11,7 +11,9 @@ package scala.tools.nsc.symtab.classfile
import scala.tools.nsc.io.{AbstractFile, PlainFile, ZipArchive}
-import java.io.{File, FileInputStream, IOException};
+import java.lang.Float.intBitsToFloat
+import java.lang.Double.longBitsToDouble
+import java.io.{File, FileInputStream, IOException}
/** this class reads files byte per byte. Only used by ClassFileParser
*/
@@ -75,11 +77,11 @@ class AbstractFileReader(val file: AbstractFile) {
/** extract a float at position bp from buf
*/
- def getFloat(mybp: Int): Float = Float.intBitsToFloat(getInt(mybp))
+ def getFloat(mybp: Int): Float = intBitsToFloat(getInt(mybp))
/** extract a double at position bp from buf
*/
- def getDouble(mybp: Int): Double = Double.longBitsToDouble(getLong(mybp))
+ def getDouble(mybp: Int): Double = longBitsToDouble(getLong(mybp))
/** skip next 'n' bytes
*/
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index c53e400b4a..1bd9c4789f 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -21,6 +21,7 @@ import scala.tools.nsc.io.AbstractFile
import scala.collection.mutable.{ListBuffer, ArrayBuffer}
import scala.collection.immutable.{Map, ListMap}
+import java.lang.Integer.toHexString
import java.io.IOException
/** This abstract class implements a class file parser.
@@ -97,8 +98,8 @@ abstract class ClassfileParser {
val magic = in.nextInt
if (magic != JAVA_MAGIC)
throw new IOException("class file '" + in.file + "' "
- + "has wrong magic number 0x" + Integer.toHexString(magic)
- + ", should be 0x" + Integer.toHexString(JAVA_MAGIC))
+ + "has wrong magic number 0x" + toHexString(magic)
+ + ", should be 0x" + toHexString(JAVA_MAGIC))
val minorVersion = in.nextChar
val majorVersion = in.nextChar
if ((majorVersion < JAVA_MAJOR_VERSION) ||
@@ -114,7 +115,7 @@ abstract class ClassfileParser {
class ConstantPool {
private val len = in.nextChar
private val starts = new Array[int](len)
- private val values = new Array[Object](len)
+ private val values = new Array[AnyRef](len)
private val internalized = new Array[Name](len)
{ var i = 1
while (i < starts.length) {
@@ -369,7 +370,7 @@ abstract class ClassfileParser {
if ((instanceDefs.lookup(nme.CONSTRUCTOR) == NoSymbol &&
(sflags & INTERFACE) == 0))
{
- //System.out.println("adding constructor to " + clazz);//DEBUG
+ //Console.println("adding constructor to " + clazz);//DEBUG
instanceDefs.enter(
clazz.newConstructor(NoPos)
.setFlag(clazz.flags & ConstrFlags)
@@ -436,7 +437,9 @@ abstract class ClassfileParser {
private def polySigToType(sym: Symbol, sig: Name): Type =
try { polySigToType0(sym, sig) }
catch {
- case e: Throwable => System.err.println("" + sym + " - " + sig); throw e
+ case e: Throwable =>
+ Console.err.println("" + sym + " - " + sig);
+ throw e
}
private def polySigToType0(sym: Symbol, sig: Name): Type = {
var index = 0
@@ -591,7 +594,7 @@ abstract class ClassfileParser {
val c = pool.getConstant(in.nextChar)
val c1 = convertTo(c, symtype)
if (c1 != null) sym.setInfo(ConstantType(c1))
- else System.out.println("failure to convert "+c+" to "+symtype);//debug
+ else Console.println("failure to convert " + c + " to " + symtype); //debug
case nme.InnerClassesATTR =>
if (!isScala) parseInnerClasses() else in.skip(attrLen)
case nme.ScalaSignatureATTR =>
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/PickleBuffer.scala b/src/compiler/scala/tools/nsc/symtab/classfile/PickleBuffer.scala
index e189e65863..fb8a3a5ed8 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/PickleBuffer.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/PickleBuffer.scala
@@ -21,7 +21,7 @@ class PickleBuffer(data: Array[byte], from: int, to: int) {
/** Double bytes array */
private def dble: unit = {
val bytes1 = new Array[byte](bytes.length * 2)
- System.arraycopy(bytes, 0, bytes1, 0, writeIndex)
+ Array.copy(bytes, 0, bytes1, 0, writeIndex)
bytes = bytes1
}
@@ -60,7 +60,7 @@ class PickleBuffer(data: Array[byte], from: int, to: int) {
def patchNat(pos: int, x: int): unit = {
def patchNatPrefix(x: int): unit = {
writeByte(0)
- System.arraycopy(bytes, pos, bytes, pos+1, writeIndex - (pos+1))
+ Array.copy(bytes, pos, bytes, pos+1, writeIndex - (pos+1))
bytes(pos) = ((x & 0x7f) | 0x80).asInstanceOf[byte]
val y = x >>> 7
if (y != 0) patchNatPrefix(y)
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
index 8e50764b8d..7a9f044064 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala
@@ -85,7 +85,7 @@ abstract class Pickler extends SubComponent {
case None =>
if (ep == entries.length) {
val entries1 = new Array[AnyRef](ep * 2)
- System.arraycopy(entries, 0, entries1, 0, ep)
+ Array.copy(entries, 0, entries1, 0, ep)
entries = entries1
}
entries(ep) = entry
diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala
index 2f1b5e8df4..b174e5747a 100644
--- a/src/compiler/scala/tools/nsc/transform/Erasure.scala
+++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala
@@ -189,8 +189,8 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
def unboxOp(tp: Type): Name = {
val clazzName = tp.symbol.name.toString()
newTermName(
- String.valueOf((clazzName.charAt(0) + ('a' - 'A')).asInstanceOf[char]) +
- clazzName.substring(1) + "Value")
+ //String.valueOf((clazzName.charAt(0) + ('a' - 'A')).asInstanceOf[char]) +
+ clazzName.charAt(0).toLowerCase + clazzName.substring(1) + "Value")
}
/** Unbox `tree' of boxed type to expected type `pt' */
@@ -214,7 +214,7 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
else
Literal(signature(pt.typeArgs.head));
*/
- //System.out.println("unboxing " + tree + ":" + tree.tpe + " to " + pt);//DEBUG
+ //Console.println("unboxing " + tree + ":" + tree.tpe + " to " + pt);//DEBUG
//gen.mkRuntimeCall(nme.arrayValue, List(tree1, elemTag))
gen.mkRuntimeCall(nme.arrayValue, List(tree1, Literal(pt.typeArgs.head)))
} else {
@@ -395,7 +395,7 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
} catch {
case ex: Throwable =>
//if (settings.debug.value)
- System.out.println("exception when typing " + tree);
+ Console.println("exception when typing " + tree);
throw ex
}
def adaptCase(cdef: CaseDef): CaseDef = {
@@ -653,7 +653,7 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
case Template(parents, body) =>
assert(!currentOwner.isImplClass)
- //System.out.println("checking no dble defs " + tree)//DEBUG
+ //Console.println("checking no dble defs " + tree)//DEBUG
checkNoDoubleDefs(tree.symbol.owner)
copy.Template(tree, parents, addBridges(body, currentOwner))
case _ =>
diff --git a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
index 213945325b..091c4e4655 100644
--- a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
+++ b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
@@ -191,7 +191,7 @@ abstract class ExplicitOuter extends InfoTransform with TransMatcher with Patter
super.transform(tree)
} catch {//debug
case ex: Throwable =>
- System.out.println("exception when transforming " + tree)
+ Console.println("exception when transforming " + tree)
throw ex
} finally {
outerParam = savedOuterParam
diff --git a/src/compiler/scala/tools/nsc/transform/LambdaLift.scala b/src/compiler/scala/tools/nsc/transform/LambdaLift.scala
index d259a1468a..d47a209ebe 100644
--- a/src/compiler/scala/tools/nsc/transform/LambdaLift.scala
+++ b/src/compiler/scala/tools/nsc/transform/LambdaLift.scala
@@ -219,7 +219,7 @@ abstract class LambdaLift extends InfoTransform {
super.traverse(tree)
} catch {//debug
case ex: Throwable =>
- System.out.println("exception when traversing " + tree)
+ Console.println("exception when traversing " + tree)
throw ex
}
}
diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala
index d5319834ea..dbaef1d3e4 100644
--- a/src/compiler/scala/tools/nsc/transform/Mixin.scala
+++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala
@@ -180,7 +180,7 @@ abstract class Mixin extends InfoTransform {
// first complete the superclass with mixed in members
addMixedinMembers(clazz.superClass)
- //System.out.println("adding members of " + clazz.info.baseClasses.tail.takeWhile(superclazz !=) + " to " + clazz);//DEBUG
+ //Console.println("adding members of " + clazz.info.baseClasses.tail.takeWhile(superclazz !=) + " to " + clazz);//DEBUG
/** Mix in members of implementation class mixinClass into class clazz */
def mixinImplClassMembers(impl: Symbol, iface: Symbol): unit = {
@@ -648,7 +648,7 @@ abstract class Mixin extends InfoTransform {
atPhase(phase.next)(postTransform(tree1))
} catch {
case ex: Throwable =>
- System.out.println("exception when traversing " + tree)
+ Console.println("exception when traversing " + tree)
throw ex
}
}
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
index c8a735a2e5..be832a0a49 100644
--- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala
+++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
@@ -95,7 +95,7 @@ abstract class UnCurry extends InfoTransform with TypingTransformers {
postTransform(mainTransform(tree))
} catch {
case ex: Throwable =>
- System.out.println("exception when traversing " + tree)
+ Console.println("exception when traversing " + tree)
throw ex
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/ConstantFolder.scala b/src/compiler/scala/tools/nsc/typechecker/ConstantFolder.scala
index 49d06a16fc..adb314cf1e 100644
--- a/src/compiler/scala/tools/nsc/typechecker/ConstantFolder.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/ConstantFolder.scala
@@ -6,6 +6,9 @@
package scala.tools.nsc.typechecker
+
+import java.lang.ArithmeticException
+
/** This class ...
*
* @author Martin Odersky
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
index 0d2d65567d..f85be9d6d7 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
@@ -334,13 +334,13 @@ trait Infer requires Analyzer {
val sym1 = sym filter (alt => context.isAccessible(alt, pre, site.isInstanceOf[Super]))
if (sym1 == NoSymbol) {
if (settings.debug.value) {
- System.out.println(context)
- System.out.println(tree)
- System.out.println("" + pre + " " + sym.owner + " " + context.owner + " " + context.outer.enclClass.owner + " " + sym.owner.thisType + (pre =:= sym.owner.thisType))
+ Console.println(context)
+ Console.println(tree)
+ Console.println("" + pre + " " + sym.owner + " " + context.owner + " " + context.outer.enclClass.owner + " " + sym.owner.thisType + (pre =:= sym.owner.thisType))
}
accessError("")
} else {
- //System.out.println("check acc " + sym1 + ":" + sym1.tpe + " from " + pre);//DEBUG
+ //Console.println("check acc " + sym1 + ":" + sym1.tpe + " from " + pre);//DEBUG
var owntype = try{
pre.memberType(sym1)
} catch {
@@ -414,7 +414,7 @@ trait Infer requires Analyzer {
/** Map type variable to its instance, or, if `variance' is covariant/contravariant,
* to its upper/lower bound */
def instantiateToBound(tvar: TypeVar, variance: int): Type = try {
- //System.out.println("instantiate "+tvar+tvar.constr+" variance = "+variance);//DEBUG
+ //Console.println("instantiate "+tvar+tvar.constr+" variance = "+variance);//DEBUG
if (tvar.constr.inst != NoType) {
instantiate(tvar.constr.inst)
} else if ((variance & COVARIANT) != 0 && !tvar.constr.hibounds.isEmpty) {
@@ -729,7 +729,7 @@ trait Infer requires Analyzer {
"\n --- because ---\n" + ex.getMessage())
}
def instError = {
- if (settings.debug.value) System.out.println("ici " + tree + " " + undetparams + " " + pt)
+ if (settings.debug.value) Console.println("ici " + tree + " " + undetparams + " " + pt)
if (settings.explaintypes.value) explainTypes(restpe.subst(undetparams, tvars), pt)
errorTree(tree, "constructor cannot be instantiated to expected type" +
foundReqMsg(restpe, pt))
@@ -750,9 +750,9 @@ trait Infer requires Analyzer {
val pt1 = pt.subst(ptparams, ptvars)
if (isPopulated(restpe, pt1)) {
ptvars foreach instantiateTypeVar
- } else { if (settings.debug.value) System.out.println("no instance: "); instError }
- } else { if (settings.debug.value) System.out.println("not a subtype " + restpe.subst(undetparams, tvars) + " of " + ptWithWildcards); instError }
- } else { if (settings.debug.value) System.out.println("not fuly defined: " + pt); instError }
+ } else { if (settings.debug.value) Console.println("no instance: "); instError }
+ } else { if (settings.debug.value) Console.println("not a subtype " + restpe.subst(undetparams, tvars) + " of " + ptWithWildcards); instError }
+ } else { if (settings.debug.value) Console.println("not fuly defined: " + pt); instError }
}
def instantiateTypeVar(tvar: TypeVar) = {
@@ -946,7 +946,7 @@ trait Infer requires Analyzer {
if (settings.debug.value) {
tree match {
case Select(qual, _) =>
- System.out.println("qual: " + qual + ":" + qual.tpe +
+ Console.println("qual: " + qual + ":" + qual.tpe +
" with decls " + qual.tpe.decls +
" with members " + qual.tpe.members +
" with members " + qual.tpe.member(newTermName("$minus")))
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 63a3bc9367..581b1f9637 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -153,7 +153,7 @@ trait Namers requires Analyzer {
val file = context.unit.source.getFile()
val clazz = c.asInstanceOf[ClassSymbol]
if (settings.debug.value && clazz.sourceFile != null && !clazz.sourceFile.equals(file)) {
- System.err.println("SOURCE MISMATCH: " + clazz.sourceFile + " vs. " + file + " SYM=" + c);
+ Console.err.println("SOURCE MISMATCH: " + clazz.sourceFile + " vs. " + file + " SYM=" + c);
}
clazz.sourceFile = file
if (clazz.sourceFile != null) {
@@ -625,7 +625,7 @@ trait Namers requires Analyzer {
}
} catch {
case ex: TypeError =>
- //System.out.println("caught " + ex + " in typeSig")//DEBUG
+ //Console.println("caught " + ex + " in typeSig")//DEBUG
typer.reportTypeError(tree.pos, ex)
ErrorType
}
@@ -682,7 +682,7 @@ trait Namers requires Analyzer {
/* Is type `tp1' properly contained in type `tp2'? */
def isContainedIn(tp1: Type, tp2: Type) = {
- //System.out.println("is " + tp1 + " contained in " + tp2 + "?");//DEBUG
+ //Console.println("is " + tp1 + " contained in " + tp2 + "?");//DEBUG
new ContainsTraverser(tp1).traverse(tp2).result
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index b2abba5934..728cca7453 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -10,6 +10,8 @@ import symtab.Flags._
import collection.mutable.HashMap
import transform.InfoTransform
+import compat.Math.MIN_INT
+
/** <p>
* Post-attribution checking and transformation.
* </p>
@@ -135,24 +137,24 @@ abstract class RefChecks extends InfoTransform {
(if (otherAccess == "") "public" else "at least "+otherAccess))
}
- //System.out.println(infoString(member) + " overrides " + infoString(other) + " in " + clazz);//DEBUG
+ //Console.println(infoString(member) + " overrides " + infoString(other) + " in " + clazz);//DEBUG
// return if we already checked this combination elsewhere
if (member.owner != clazz) {
if ((member.owner isSubClass other.owner) &&
((member hasFlag DEFERRED) || !(other hasFlag DEFERRED))) {
- //System.out.println(infoString(member) + " shadows1 " + infoString(other) " in " + clazz);//DEBUG
+ //Console.println(infoString(member) + " shadows1 " + infoString(other) " in " + clazz);//DEBUG
return;
}
if (clazz.info.parents exists (parent =>
(parent.symbol isSubClass other.owner) && (parent.symbol isSubClass member.owner) &&
((member hasFlag DEFERRED) || !(other hasFlag DEFERRED)))) {
- //System.out.println(infoString(member) + " shadows2 " + infoString(other) + " in " + clazz);//DEBUG
+ //Console.println(infoString(member) + " shadows2 " + infoString(other) + " in " + clazz);//DEBUG
return;
}
if (clazz.info.parents forall (parent =>
(parent.symbol isSubClass other.owner) == (parent.symbol isSubClass member.owner))) {
- //System.out.println(infoString(member) + " shadows " + infoString(other) + " in " + clazz);//DEBUG
+ //Console.println(infoString(member) + " shadows " + infoString(other) + " in " + clazz);//DEBUG
return;
}
}
@@ -205,7 +207,7 @@ abstract class RefChecks extends InfoTransform {
val opc = new overridingPairs.Cursor(clazz)
while (opc.hasNext) {
- //System.out.println("overrides " + opc.overriding/* + ":" + opc.overriding.tpe*/ + opc.overriding.locationString + " " + opc.overridden/* + ":" + opc.overridden.tpe*/ + opc.overridden.locationString + opc.overridden.hasFlag(DEFERRED));//DEBUG
+ //Console.println("overrides " + opc.overriding/* + ":" + opc.overriding.tpe*/ + opc.overriding.locationString + " " + opc.overridden/* + ":" + opc.overridden.tpe*/ + opc.overridden.locationString + opc.overridden.hasFlag(DEFERRED));//DEBUG
if (!opc.overridden.isClass) checkOverride(clazz, opc.overriding, opc.overridden);
opc.next
@@ -239,7 +241,7 @@ abstract class RefChecks extends InfoTransform {
(clazz.info.baseClasses.tail forall {
bc => member.matchingSymbol(bc, clazz.thisType) == NoSymbol
})) {
- // for (val bc <- clazz.info.baseClasses.tail) System.out.println("" + bc + " has " + bc.info.decl(member.name) + ":" + bc.info.decl(member.name).tpe);//DEBUG
+ // for (val bc <- clazz.info.baseClasses.tail) Console.println("" + bc + " has " + bc.info.decl(member.name) + ":" + bc.info.decl(member.name).tpe);//DEBUG
unit.error(member.pos, member.toString() + " overrides nothing");
member resetFlag OVERRIDE
}
@@ -322,7 +324,7 @@ abstract class RefChecks extends InfoTransform {
var sym = base
var state = CoVariance
while (sym != clazz && state != AnyVariance) {
- //System.out.println("flip: " + sym + " " + sym.isParameter());//DEBUG
+ //Console.println("flip: " + sym + " " + sym.isParameter());//DEBUG
if ((sym hasFlag PARAM) && !sym.owner.isConstructor) state = -state;
else if (!sym.owner.isClass) state = AnyVariance;
else if (sym.isAliasType) state = NoVariance;
@@ -344,7 +346,7 @@ abstract class RefChecks extends InfoTransform {
if (sym.variance != NoVariance) {
val v = relativeVariance(sym);
if (v != AnyVariance && sym.variance != v * variance) {
- //System.out.println("relativeVariance(" + base + "," + sym + ") = " + v);//DEBUG
+ //Console.println("relativeVariance(" + base + "," + sym + ") = " + v);//DEBUG
unit.error(base.pos,
varianceString(sym.variance) + " " + sym +
" occurs in " + varianceString(v * variance) +
@@ -381,7 +383,7 @@ abstract class RefChecks extends InfoTransform {
class LevelInfo(val outer: LevelInfo) {
val scope: Scope = if (outer == null) newScope else newScope(outer.scope)
- var maxindex: int = Integer.MIN_VALUE
+ var maxindex: int = MIN_INT
var refpos: int = _
var refsym: Symbol = _
}
@@ -468,7 +470,7 @@ abstract class RefChecks extends InfoTransform {
case ValDef(_, _, _, _) =>
val tree1 = transform(tree); // important to do before forward reference check
if (tree.symbol.isLocal && index <= currentLevel.maxindex) {
- if (settings.debug.value) System.out.println(currentLevel.refsym);
+ if (settings.debug.value) Console.println(currentLevel.refsym);
unit.error(currentLevel.refpos, "forward reference extends over definition of " + tree.symbol);
}
List(tree1)
@@ -515,7 +517,7 @@ abstract class RefChecks extends InfoTransform {
case _ =>
false
}
- //System.out.println("is irefutable? " + pat + ":" + pat.tpe + " against " + seltpe + ": " + result);//DEBUG
+ //Console.println("is irefutable? " + pat + ":" + pat.tpe + " against " + seltpe + ": " + result);//DEBUG
result
}
@@ -590,7 +592,7 @@ abstract class RefChecks extends InfoTransform {
else qual match {
case Super(qualifier, mix) =>
val base = qual.symbol;
- //System.out.println("super: " + tree + " in " + base);//DEBUG
+ //Console.println("super: " + tree + " in " + base);//DEBUG
assert(!(base.isTrait && sym.isTerm && mix == nme.EMPTY.toTypeName)) // term should have been eliminated by super accessors
case _ =>
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
index 8be7d250a5..91d5855ac0 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
@@ -78,7 +78,7 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT
sym.alias) setPos tree.pos
}
if (settings.debug.value)
- System.out.println("alias replacement: " + tree + " ==> " + result);//debug
+ Console.println("alias replacement: " + tree + " ==> " + result);//debug
transform(result)
} else {
if (needsProtectedAccessor(sym, tree.pos)) {
diff --git a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
index 2d963316de..caf0573f3d 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
@@ -152,7 +152,7 @@ trait SyntheticMethods requires Analyzer {
}
def beanSetterOrGetter(sym: Symbol): Symbol =
- if (!Character.isLetter(sym.name(0))) {
+ if (!sym.name(0).isLetter) {
unit.error(sym.pos, "attribute `BeanProperty' can be applied only to fields that start with a letter")
NoSymbol
} else {
@@ -161,7 +161,7 @@ trait SyntheticMethods requires Analyzer {
val prefix = if (sym.isSetter) "set" else
if (sym.tpe.resultType == BooleanClass.tpe) "is" else "get"
val arity = if (sym.isSetter) 1 else 0
- val name1 = prefix + Character.toUpperCase(name0(0)) + name0.subName(1, name0.length)
+ val name1 = prefix + name0(0).toUpperCase + name0.subName(1, name0.length)
val sym1 = clazz.info.decl(name1)
if (sym1 != NoSymbol && sym1.tpe.paramTypes.length == arity) {
unit.error(sym.pos, "a definition of `"+name1+"' already exists in " + clazz)
diff --git a/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala b/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala
index 0e032321e0..dd24c7b32e 100644
--- a/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala
@@ -17,7 +17,7 @@ abstract class TreeCheckers extends Analyzer {
val tpeOfTree = new scala.collection.mutable.HashMap[Tree, Type]
def checkTrees: unit = {
- System.out.println("[consistency check at start of phase " + phase + "]")
+ Console.println("[consistency check at start of phase " + phase + "]")
for (val unit <- currentRun.units) check(unit)
}
@@ -112,7 +112,7 @@ abstract class TreeCheckers extends Analyzer {
} catch {
case ex: Throwable =>
if (settings.debug.value)
- System.out.println("exception when traversing " + tree);
+ Console.println("exception when traversing " + tree);
throw(ex)
}
}
@@ -137,7 +137,7 @@ abstract class TreeCheckers extends Analyzer {
} catch {
case ex: Throwable =>
if (settings.debug.value)
- System.out.println("exception when traversing " + tree);
+ Console.println("exception when traversing " + tree);
throw(ex)
}
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 4a4d6da251..c5d9c68621 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -8,6 +8,7 @@
//todo: use inherited type info also for vars and values
package scala.tools.nsc.typechecker
+import compat.Platform.currentTime
import scala.collection.mutable.{HashMap, ListBuffer}
import scala.tools.nsc.util.{HashSet, Position, Set}
import symtab.Flags._
@@ -633,7 +634,7 @@ trait Typers requires Analyzer {
}
}
}
-// System.out.println("adapt "+tree+":"+tree.tpe+", mode = "+mode+", pt = "+pt)
+// Console.println("adapt "+tree+":"+tree.tpe+", mode = "+mode+", pt = "+pt)
// adapt(tree, mode, pt)
// }
@@ -709,7 +710,7 @@ trait Typers requires Analyzer {
}
}
}
- //System.out.println("parents("+context.owner+") = "+supertpt :: mixins);//DEBUG
+ //Console.println("parents("+context.owner+") = "+supertpt :: mixins);//DEBUG
List.mapConserve(supertpt :: mixins)(tpt => checkNoEscaping.privates(context.owner, tpt))
}
} catch {
@@ -754,9 +755,9 @@ trait Typers requires Analyzer {
context.unit.source.file != psym.sourceFile)
error(parent.pos, "illegal inheritance from sealed "+psym)
if (!(selfType <:< parent.tpe.typeOfThis) && !phase.erasedTypes) {
- //System.out.println(context.owner);//DEBUG
- //System.out.println(context.owner.unsafeTypeParams);//DEBUG
- //System.out.println(List.fromArray(context.owner.info.closure));//DEBUG
+ //Console.println(context.owner);//DEBUG
+ //Console.println(context.owner.unsafeTypeParams);//DEBUG
+ //Console.println(List.fromArray(context.owner.info.closure));//DEBUG
error(parent.pos, "illegal inheritance;\n self-type "+
selfType+" does not conform to "+parent +
"'s selftype "+parent.tpe.typeOfThis)
@@ -794,7 +795,7 @@ trait Typers requires Analyzer {
* @return ...
*/
def typedModuleDef(mdef: ModuleDef): Tree = {
- //System.out.println("sourcefile of " + mdef.symbol + "=" + mdef.symbol.sourceFile)
+ //Console.println("sourcefile of " + mdef.symbol + "=" + mdef.symbol.sourceFile)
attributes(mdef)
val clazz = mdef.symbol.moduleClass
val impl1 = newTyper(context.make(mdef.impl, clazz, newTemplateScope(mdef.impl, clazz)))
@@ -916,7 +917,7 @@ trait Typers requires Analyzer {
if (!superClazz.hasFlag(JAVA)) {
val superParamAccessors = superClazz.constrParamAccessors
if (superParamAccessors.length != superArgs.length) {
- System.out.println("" + superClazz + ":" +
+ Console.println("" + superClazz + ":" +
superClazz.info.decls.toList.filter(.hasFlag(PARAMACCESSOR)))
assert(false, "mismatch: " + superParamAccessors +
";" + rhs + ";" + superClazz.info.decls)//debug
@@ -1245,7 +1246,7 @@ trait Typers requires Analyzer {
case MethodType(formals0, restpe) =>
val formals = formalTypes(formals0, args.length)
if (formals.length != args.length) {
- //System.out.println(""+formals.length+" "+args.length);//DEBUG
+ //Console.println(""+formals.length+" "+args.length);//DEBUG
errorTree(tree, "wrong number of arguments for "+treeSymTypeMsg(fun))
} else {
val tparams = context.undetparams
@@ -1555,7 +1556,7 @@ trait Typers requires Analyzer {
if (qual1 ne qual) return typed(copy.Select(tree, qual1, name), mode, pt)
}
if (!sym.exists) {
- if (settings.debug.value) System.err.println("qual = "+qual+":"+qual.tpe+"\nSymbol="+qual.tpe.symbol+"\nsymbol-info = "+qual.tpe.symbol.info+"\nscope-id = "+qual.tpe.symbol.info.decls.hashCode()+"\nmembers = "+qual.tpe.members+"\nname = "+name+"\nfound = "+sym+"\nowner = "+context.enclClass.owner)
+ if (settings.debug.value) Console.err.println("qual = "+qual+":"+qual.tpe+"\nSymbol="+qual.tpe.symbol+"\nsymbol-info = "+qual.tpe.symbol.info+"\nscope-id = "+qual.tpe.symbol.info.decls.hashCode()+"\nmembers = "+qual.tpe.members+"\nname = "+name+"\nfound = "+sym+"\nowner = "+context.enclClass.owner)
if (!qual.tpe.widen.isErroneous) {
if (false && context.unit == null) assert(false, "("+qual+":"+qual.tpe+")."+name)
error(tree.pos,
@@ -1978,7 +1979,7 @@ trait Typers requires Analyzer {
else {
val ps = clazz.info.parents filter (p => p.symbol.name == mix)
if (ps.isEmpty) {
- if (settings.debug.value) System.out.println(clazz.info.parents map (.symbol.name));//debug
+ if (settings.debug.value) Console.println(clazz.info.parents map (.symbol.name));//debug
error(tree.pos, ""+mix+" does not name a parent class of "+clazz)
ErrorType
} else if (ps.tail.isEmpty) {
@@ -2065,8 +2066,8 @@ trait Typers requires Analyzer {
} else if (tparams.length == 0) {
errorTree(tree, ""+tpt1.tpe+" does not take type parameters")
} else {
- //System.out.println("\{tpt1}:\{tpt1.symbol}:\{tpt1.symbol.info}")
- if (settings.debug.value) System.out.println(""+tpt1+":"+tpt1.symbol+":"+tpt1.symbol.info);//debug
+ //Console.println("\{tpt1}:\{tpt1.symbol}:\{tpt1.symbol.info}")
+ if (settings.debug.value) Console.println(""+tpt1+":"+tpt1.symbol+":"+tpt1.symbol.info);//debug
errorTree(tree, "wrong number of type arguments for "+tpt1.tpe+", should be "+tparams.length)
}
@@ -2098,21 +2099,21 @@ trait Typers requires Analyzer {
val ret = typedHookForType(tree, mode, pt);
if (ret != null) return ret;
}
- //System.out.println("typing "+tree+", "+context.undetparams);//DEBUG
+ //Console.println("typing "+tree+", "+context.undetparams);//DEBUG
val tree1 = if (tree.tpe != null) tree else typed1(tree, mode, pt)
- //System.out.println("typed "+tree1+":"+tree1.tpe+", "+context.undetparams);//DEBUG
+ //Console.println("typed "+tree1+":"+tree1.tpe+", "+context.undetparams);//DEBUG
val result = if (tree1.isEmpty) tree1 else adapt(tree1, mode, pt)
- //System.out.println("adapted "+tree1+":"+tree1.tpe+" to "+pt+", "+context.undetparams);//DEBUG
+ //Console.println("adapted "+tree1+":"+tree1.tpe+" to "+pt+", "+context.undetparams);//DEBUG
result
} catch {
case ex: TypeError =>
tree.tpe = null
- //System.out.println("caught "+ex+" in typed");//DEBUG
+ //Console.println("caught "+ex+" in typed");//DEBUG
reportTypeError(tree.pos, ex)
setError(tree)
case ex: Throwable =>
if (settings.debug.value)
- System.out.println("exception when typing "+tree+", pt = "+pt)
+ Console.println("exception when typing "+tree+", pt = "+pt)
if (context != null && context.unit != null &&
context.unit.source != null && tree != null)
logError("AT: " + context.unit.source.dbg(tree.pos), ex);
@@ -2261,7 +2262,7 @@ trait Typers requires Analyzer {
private def inferImplicit(pos: PositionType, pt: Type, isView: boolean, reportAmbiguous: boolean): Tree = {
if (util.Statistics.enabled) implcnt = implcnt + 1
- val startTime = if (util.Statistics.enabled) System.currentTimeMillis() else 0l
+ val startTime = if (util.Statistics.enabled) currentTime else 0l
val tc = newTyper(context.makeImplicit(reportAmbiguous))
@@ -2349,7 +2350,7 @@ trait Typers requires Analyzer {
var tree = searchImplicit(context.implicitss, true)
if (tree == EmptyTree) tree = searchImplicit(implicitsOfType(pt), false)
if (util.Statistics.enabled)
- impltime = impltime + System.currentTimeMillis() - startTime
+ impltime = impltime + currentTime - startTime
tree
}
diff --git a/src/compiler/scala/tools/nsc/util/ClassPath.scala b/src/compiler/scala/tools/nsc/util/ClassPath.scala
index 0256db87a7..a2ec9d945b 100644
--- a/src/compiler/scala/tools/nsc/util/ClassPath.scala
+++ b/src/compiler/scala/tools/nsc/util/ClassPath.scala
@@ -81,7 +81,7 @@ class ClassPath(onlyPresentation: Boolean) {
else new Source(source0, head.source.compile)
}
try {
- //System.err.println("this=" + this + "\nclazz=" + clazz + "\nsource0=" + source0 + "\n")
+ //Console.err.println("this=" + this + "\nclazz=" + clazz + "\nsource0=" + source0 + "\n")
new Context(entry :: ret.entries)
} catch {
case e: Error =>
@@ -93,7 +93,7 @@ class ClassPath(onlyPresentation: Boolean) {
val ret = find0(entries)
if (ret.entries.isEmpty) {
- //System.err.println("BAD_FILE: " + name + " in " + this)
+ //Console.err.println("BAD_FILE: " + name + " in " + this)
null
} else ret
} else null
@@ -150,7 +150,7 @@ class ClassPath(onlyPresentation: Boolean) {
val sourcePath0 = sourcePath
if (sourcePath0 != null) {
if (!sourcePath0.isDirectory) {
- System.err.println(""+sourcePath0 + " cannot be a directory")
+ Console.err.println(""+sourcePath0 + " cannot be a directory")
assert(false)
}
}
@@ -184,7 +184,7 @@ class ClassPath(onlyPresentation: Boolean) {
addArchivesInExtDirPath(extdirs)
val clazzes = AbstractFile.getDirectory(output)
if (clazzes == null) {
- System.err.println("Output location \"" + output + "\" not found")
+ Console.err.println("Output location \"" + output + "\" not found")
exit(1)
}
val strtok = new StringTokenizer(source, File.pathSeparator)
diff --git a/src/compiler/scala/tools/nsc/util/HashSet.scala b/src/compiler/scala/tools/nsc/util/HashSet.scala
index 5aa79dd141..2b2b8bdc53 100644
--- a/src/compiler/scala/tools/nsc/util/HashSet.scala
+++ b/src/compiler/scala/tools/nsc/util/HashSet.scala
@@ -12,7 +12,7 @@ class HashSet[T >: Null <: AnyRef](initialCapacity: int) extends Set[T] {
private var capacity = initialCapacity
private var used = 0
- private var table = new Array[Object](capacity)
+ private var table = new Array[AnyRef](capacity)
def size: int = used
@@ -53,7 +53,7 @@ class HashSet[T >: Null <: AnyRef](initialCapacity: int) extends Set[T] {
private def growTable: unit = {
val oldtable = table
capacity = capacity * 2
- table = new Array[Object](capacity)
+ table = new Array[AnyRef](capacity)
var i = 0
while (i < oldtable.length) {
val entry = oldtable(i)
diff --git a/src/compiler/scala/tools/nsc/util/NameTransformer.scala b/src/compiler/scala/tools/nsc/util/NameTransformer.scala
index 0df9508657..54c444f118 100644
--- a/src/compiler/scala/tools/nsc/util/NameTransformer.scala
+++ b/src/compiler/scala/tools/nsc/util/NameTransformer.scala
@@ -6,6 +6,8 @@
package scala.tools.nsc.util
+import compat.StringBuilder
+
object NameTransformer {
private val nops = 128
private val ncodes = 26 * 26
@@ -46,14 +48,14 @@ object NameTransformer {
* @return ...
*/
def encode(name: String): String = {
- var buf: StringBuffer = null
+ var buf: StringBuilder = null
val len = name.length()
var i = 0
while (i < len) {
val c = name charAt i
if (c < nops && op2code(c) != null) {
if (buf == null) {
- buf = new StringBuffer()
+ buf = new StringBuilder()
buf.append(name.substring(0, i))
}
buf.append(op2code(c))
@@ -74,7 +76,7 @@ object NameTransformer {
//System.out.println("decode: " + name);//DEBUG
val name = if (name0.endsWith("<init>")) name0.substring(0, name0.length() - ("<init>").length()) + "this"
else name0;
- var buf: StringBuffer = null
+ var buf: StringBuilder = null
val len = name.length()
var i = 0
while (i < len) {
@@ -89,7 +91,7 @@ object NameTransformer {
while (ops != null && !name.startsWith(ops.code, i)) ops = ops.next;
if (ops != null) {
if (buf == null) {
- buf = new StringBuffer()
+ buf = new StringBuilder()
buf.append(name.substring(0, i))
}
buf.append(ops.op)
diff --git a/src/compiler/scala/tools/nsc/util/Position.scala b/src/compiler/scala/tools/nsc/util/Position.scala
index 7d26dbc6d4..a7bd8f211e 100644
--- a/src/compiler/scala/tools/nsc/util/Position.scala
+++ b/src/compiler/scala/tools/nsc/util/Position.scala
@@ -11,6 +11,9 @@
package scala.tools.nsc.util
+
+import compat.StringBuilder
+
/** This position uses offset in character buffer rather than line/column
* relationship.
*
@@ -98,7 +101,7 @@ class Position( val source : SourceFile, val offset: Int) {
if(inUltimateSource != this)
return inUltimateSource.toString
- val sb = new StringBuffer()
+ val sb = new StringBuilder()
if (source != null) {
sb.append(source.file.path)
if (hasOffset) {
diff --git a/src/compiler/scala/tools/nsc/util/ShowPickled.scala b/src/compiler/scala/tools/nsc/util/ShowPickled.scala
index c526ec79e4..115aa4eb9d 100644
--- a/src/compiler/scala/tools/nsc/util/ShowPickled.scala
+++ b/src/compiler/scala/tools/nsc/util/ShowPickled.scala
@@ -6,7 +6,10 @@
package scala.tools.nsc.util
-import java.io._
+import java.lang.Integer.toHexString
+import java.lang.Float.intBitsToFloat
+import java.lang.Double.longBitsToDouble
+import java.io.{File, FileInputStream, PrintStream, IOException}
import symtab.{Flags, Names}
import symtab.classfile.{PickleBuffer, PickleFormat}
@@ -75,7 +78,7 @@ object ShowPickled extends Names {
printNameRef()
printSymbolRef()
val flags = buf.readNat()
- out.print(" " + Integer.toHexString(flags) +
+ out.print(" " + toHexString(flags) +
"[" + Flags.flagsToString(flags) + "] ")
printTypeRef()
}
@@ -134,9 +137,9 @@ object ShowPickled extends Names {
case LITERALlong =>
out.print(" " + buf.readLong(len))
case LITERALfloat =>
- out.print(" " + Float.intBitsToFloat(buf.readLong(len).asInstanceOf[int]))
+ out.print(" " + intBitsToFloat(buf.readLong(len).asInstanceOf[int]))
case LITERALdouble =>
- out.print(" " + Double.longBitsToDouble(buf.readLong(len)))
+ out.print(" " + longBitsToDouble(buf.readLong(len)))
case LITERALstring =>
printNameRef()
case LITERALnull =>
@@ -160,10 +163,10 @@ object ShowPickled extends Names {
val data = new Array[byte](stream.available())
stream.read(data)
val pickle = new PickleBuffer(data, 0, data.length)
- printFile(pickle, System.out)
+ printFile(pickle, Console.out)
} catch {
case ex: IOException =>
- System.out.println("cannot read " + file + ": " + ex.getMessage())
+ Console.println("cannot read " + file + ": " + ex.getMessage())
}
}
}
diff --git a/src/compiler/scala/tools/nsc/util/SourceFile.scala b/src/compiler/scala/tools/nsc/util/SourceFile.scala
index 19ae7bc849..c72e1899e7 100644
--- a/src/compiler/scala/tools/nsc/util/SourceFile.scala
+++ b/src/compiler/scala/tools/nsc/util/SourceFile.scala
@@ -11,6 +11,7 @@
package scala.tools.nsc.util
+import compat.StringBuilder
import scala.tools.nsc.io.{AbstractFile, VirtualFile}
/** Uses positions that are offsets rather than line/column pairs.
@@ -121,12 +122,12 @@ class SourceFile(val file: AbstractFile, _content: Array[Char]) {
def path = getFile().path
def skipWhitespace(offset: Int): Int =
- if (Character.isWhitespace(content(offset))) skipWhitespace(offset + 1)
+ if (content(offset).isWhitespace) skipWhitespace(offset + 1)
else offset
def lineToString(index: Int): String = {
var offset = lineToOffset(index)
- val buf = new StringBuffer()
+ val buf = new StringBuilder()
while (!isLineBreak(offset) && offset < content.length) {
buf.append(content(offset))
offset = offset + 1
@@ -138,7 +139,7 @@ class SourceFile(val file: AbstractFile, _content: Array[Char]) {
if (input.length > 0 && input(input.length - 1) == SU) input
else {
val content = new Array[char](input.length + 1)
- System.arraycopy(input, 0, content, 0, input.length)
+ Array.copy(input, 0, content, 0, input.length)
content(input.length) = SU
content
}
diff --git a/src/compiler/scala/tools/util/AbstractTimer.scala b/src/compiler/scala/tools/util/AbstractTimer.scala
index 8d445ca818..f734692a79 100644
--- a/src/compiler/scala/tools/util/AbstractTimer.scala
+++ b/src/compiler/scala/tools/util/AbstractTimer.scala
@@ -10,6 +10,7 @@
package scala.tools.util
+import compat.Platform.currentTime
import scala.collection.mutable.Stack
/**
@@ -35,12 +36,12 @@ abstract class AbstractTimer {
/** Starts a new timer. */
def start() = {
- starts += System.currentTimeMillis()
+ starts += currentTime
}
/** Ends the current timer. */
def stop(message: String): Unit = {
- val stop = System.currentTimeMillis()
+ val stop = currentTime
issue(message, stop - starts.pop)
}
diff --git a/src/compiler/scala/tools/util/SocketServer.scala b/src/compiler/scala/tools/util/SocketServer.scala
index 93dbde2694..06b732c6cb 100644
--- a/src/compiler/scala/tools/util/SocketServer.scala
+++ b/src/compiler/scala/tools/util/SocketServer.scala
@@ -10,7 +10,11 @@
package scala.tools.util
-import java.io._
+import java.lang.System
+import java.io.PrintWriter
+import java.io.BufferedOutputStream
+import java.io.{BufferedReader, InputStreamReader}
+import java.io.IOException
import java.net.ServerSocket
/** The abstract class <code>SocketServer</code> implements the server
diff --git a/src/compiler/scala/tools/util/UTF8Codec.scala b/src/compiler/scala/tools/util/UTF8Codec.scala
index d50209696a..d2d420c4b6 100644
--- a/src/compiler/scala/tools/util/UTF8Codec.scala
+++ b/src/compiler/scala/tools/util/UTF8Codec.scala
@@ -77,7 +77,7 @@ object UTF8Codec {
def decode(src: Array[Byte], from: Int, len: Int): String = {
val cs = new Array[Char](len)
- String.copyValueOf(cs, 0, decode(src, 0, cs, 0, len))
+ new String(cs, 0, decode(src, 0, cs, 0, len))
}
}
diff --git a/src/dbc/scala/dbc/datatype/Unknown.scala b/src/dbc/scala/dbc/datatype/Unknown.scala
index 4ab1db59f8..66da0b6a95 100644
--- a/src/dbc/scala/dbc/datatype/Unknown.scala
+++ b/src/dbc/scala/dbc/datatype/Unknown.scala
@@ -24,7 +24,7 @@ class Unknown extends DataType {
def isSubtypeOf(datatype: DataType) = true;
- type NativeType = Object;
+ type NativeType = AnyRef;
val nativeTypeId = DataType.OBJECT;
/** A SQL-99 compliant string representation of the type. */
diff --git a/src/dbc/scala/dbc/result/Relation.scala b/src/dbc/scala/dbc/result/Relation.scala
index aaefdf095c..5ffc387a87 100644
--- a/src/dbc/scala/dbc/result/Relation.scala
+++ b/src/dbc/scala/dbc/result/Relation.scala
@@ -14,7 +14,7 @@ package scala.dbc.result;
/** An ISO-9075:2003 (SQL) table. This is equivalent to a relation in the
* relational model. */
-abstract class Relation extends Object with Iterable[Tuple] {
+abstract class Relation extends AnyRef with Iterable[Tuple] {
/** The statement that generated this relation. */
def statement: scala.dbc.statement.Relation;
diff --git a/src/dbc/scala/dbc/value/Factory.scala b/src/dbc/scala/dbc/value/Factory.scala
index b0d8c22570..f3a479fefc 100644
--- a/src/dbc/scala/dbc/value/Factory.scala
+++ b/src/dbc/scala/dbc/value/Factory.scala
@@ -22,7 +22,7 @@ object Factory {
case DataType.OBJECT =>
new value.Unknown {
val dataType = expectedDataType.asInstanceOf[datatype.Unknown];
- val nativeValue: Object = result.getObject(index);
+ val nativeValue: AnyRef = result.getObject(index);
}
case DataType.STRING => {
expectedDataType match {
diff --git a/src/dbc/scala/dbc/value/Unknown.scala b/src/dbc/scala/dbc/value/Unknown.scala
index 6fe4773e94..8d6874da20 100644
--- a/src/dbc/scala/dbc/value/Unknown.scala
+++ b/src/dbc/scala/dbc/value/Unknown.scala
@@ -22,6 +22,6 @@ abstract class Unknown extends Value {
object UnknownType {
- def view (obj:value.Unknown): Object = obj.nativeValue;
+ def view (obj:value.Unknown): AnyRef = obj.nativeValue;
}
diff --git a/src/dbc/scala/dbc/vendor/PostgreSQL.scala b/src/dbc/scala/dbc/vendor/PostgreSQL.scala
index 41886aea58..75c5064a71 100644
--- a/src/dbc/scala/dbc/vendor/PostgreSQL.scala
+++ b/src/dbc/scala/dbc/vendor/PostgreSQL.scala
@@ -12,6 +12,8 @@
package scala.dbc.vendor;
+import compat.Platform
+
abstract class PostgreSQL extends Vendor {
def uri:java.net.URI;
@@ -20,7 +22,7 @@ abstract class PostgreSQL extends Vendor {
val retainedConnections = 5;
- val nativeDriverClass = Class.forName("org.postgresql.Driver");
+ val nativeDriverClass = Platform.getClassForName("org.postgresql.Driver");
val urlProtocolString = "jdbc:postgresql:"
diff --git a/src/library/scala/Application.scala b/src/library/scala/Application.scala
index a289884eca..9b268abeae 100644
--- a/src/library/scala/Application.scala
+++ b/src/library/scala/Application.scala
@@ -12,6 +12,9 @@
package scala
+import compat.Platform.currentTime
+import java.lang.System.getProperty
+
/** The <code>Application</code> class can be used to quickly turn objects
* into executable programs. Here is an example:
* <pre>
@@ -40,16 +43,16 @@ trait Application {
/** The time when execution of this program started.
*/
- val executionStart: Long = java.lang.System.currentTimeMillis()
+ val executionStart: Long = currentTime
/** The default main method.
*
* @param args the arguments passed to the main method
*/
def main(args: Array[String]) = {
- if (java.lang.System.getProperty("scala.time") != null) {
- val total = java.lang.System.currentTimeMillis() - executionStart
- java.lang.System.out.println("[total " + total + "ms]")
+ if (getProperty("scala.time") != null) {
+ val total = currentTime - executionStart
+ Console.println("[total " + total + "ms]")
}
}
}
diff --git a/src/library/scala/Array.scala b/src/library/scala/Array.scala
index b64df80406..a7534e31fb 100644
--- a/src/library/scala/Array.scala
+++ b/src/library/scala/Array.scala
@@ -8,8 +8,11 @@
// $Id$
+
package scala
+import compat.Platform.arraycopy
+
/** This object ...
*
* @author Martin Odersky
@@ -36,7 +39,7 @@ object Array {
case xs: runtime.BoxedArray =>
xs.copyFrom(src, srcPos, destPos, length)
case _ =>
- System.arraycopy(src, srcPos, dest, destPos, length)
+ arraycopy(src, srcPos, dest, destPos, length)
}
}
@@ -162,6 +165,7 @@ object Array {
* @version 1.0
*/
final class Array[A](_length: Int) extends Seq[A] {
+ import Predef.Error
def length: Int = throw new Error()
def apply(i: Int): A = throw new Error()
def update(i: Int, x: A): Unit = throw new Error()
diff --git a/src/library/scala/Console.scala b/src/library/scala/Console.scala
index c1504627ef..e6fcd2130b 100644
--- a/src/library/scala/Console.scala
+++ b/src/library/scala/Console.scala
@@ -61,6 +61,8 @@ object Console {
def out = outFluid.value
def in = inFluid.value
+ val err = java.lang.System.err
+
/** Set the default output stream.
*
* @param out the new output stream.
@@ -193,27 +195,27 @@ object Console {
/** Read a byte value from the terminal.
*/
- def readByte: Byte = java.lang.Byte.decode(in.readLine()).byteValue()
+ def readByte: Byte = readLine.toByte
/** Read a short value from the terminal.
*/
- def readShort: Short = java.lang.Short.decode(in.readLine()).shortValue()
+ def readShort: Short = readLine.toByte
/** Read a char value from the terminal.
*/
- def readChar: Char = in.readLine().charAt(0)
+ def readChar: Char = readLine charAt 0
/** Read an int value from the terminal.
*/
- def readInt: Int = java.lang.Integer.decode(in.readLine()).intValue()
+ def readInt: Int = readLine.toInt
/** Read a float value from the terminal.
*/
- def readFloat: Float = compat.Platform.parseFloat(in.readLine())
+ def readFloat: Float = readLine.toFloat
/** Read a double value from the terminal.
*/
- def readDouble: Double = compat.Platform.parseDouble(in.readLine())
+ def readDouble: Double = readLine.toDouble
/** Read in some structured input, specified by a format specifier.
* See class <code>java.text.MessageFormat</code> for details of
diff --git a/src/library/scala/Iterable.scala b/src/library/scala/Iterable.scala
index 0545b8538e..45b67e7550 100644
--- a/src/library/scala/Iterable.scala
+++ b/src/library/scala/Iterable.scala
@@ -12,7 +12,7 @@
package scala
-import compat.Platform.IllegalArgumentException
+import Predef.IllegalArgumentException
/** This object ...
*
diff --git a/src/library/scala/Iterator.scala b/src/library/scala/Iterator.scala
index 0959dfa958..3e9dbdb957 100644
--- a/src/library/scala/Iterator.scala
+++ b/src/library/scala/Iterator.scala
@@ -13,7 +13,6 @@ package scala
import Predef._
-import compat.Platform.NoSuchElementException
/** The <code>Iterator</code> object provides various functions for
* creating specialized iterators.
diff --git a/src/library/scala/List.scala b/src/library/scala/List.scala
index 88e1f94574..1410068344 100644
--- a/src/library/scala/List.scala
+++ b/src/library/scala/List.scala
@@ -13,7 +13,6 @@ package scala
import scala.collection.mutable.ListBuffer
import Predef._
-import compat.Platform.{NoSuchElementException, UnsupportedOperationException}
/** This object provides methods for creating specialized lists, and for
* transforming special kinds of lists (e.g. lists of lists).
@@ -547,7 +546,6 @@ sealed abstract class List[+a] extends Seq[a] with CaseClass {
*
* @param n the number of elements to take
* @return the suffix of length <code>n</code> of the list
- * @throws <code>java.lang.RuntimeException</code> if the list is too short.
*/
def takeRight(n: Int): List[a] = {
def loop(lead: List[a], lag: List[a]): List[a] = lead match {
@@ -561,7 +559,6 @@ sealed abstract class List[+a] extends Seq[a] with CaseClass {
*
* @param n the number of elements to take
* @return the suffix of length <code>n</code> of the list
- * @throws <code>java.lang.RuntimeException</code> if the list is too short.
*/
def dropRight(n: Int): List[a] = {
def loop(lead: List[a], lag: List[a]): List[a] = lead match {
diff --git a/src/library/scala/NotDefinedError.scala b/src/library/scala/NotDefinedError.scala
index 7df1c8b11b..60e61d9e89 100644
--- a/src/library/scala/NotDefinedError.scala
+++ b/src/library/scala/NotDefinedError.scala
@@ -9,7 +9,9 @@
// $Id$
-package scala;
+package scala
-final class NotDefinedError(msg: String) extends Error("not defined: " + msg);
+import Predef.Error
+
+final class NotDefinedError(msg: String) extends Error("not defined: " + msg)
diff --git a/src/library/scala/Option.scala b/src/library/scala/Option.scala
index e140cbc6e6..9d8e547c28 100644
--- a/src/library/scala/Option.scala
+++ b/src/library/scala/Option.scala
@@ -13,7 +13,6 @@ package scala;
import Predef._
-import compat.Platform.NoSuchElementException
/** This class represents optional values. Instances of <code>Option</code>
* are either instances of case class <code>Some</code> or it is case
@@ -31,7 +30,7 @@ sealed abstract class Option[+A] extends Iterable[A] with CaseClass {
}
/**
- * @throws scala.compat.Platform.NoSuchElementException
+ * @throws Predef.NoSuchElementException
*/
def get: A = this match {
case None => throw new NoSuchElementException("None.get")
diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala
index 932f45c5c9..1673ba90a1 100644
--- a/src/library/scala/Predef.scala
+++ b/src/library/scala/Predef.scala
@@ -21,7 +21,7 @@ object Predef {
// classOf dummy -------------------------------------------------
/** Return the runtime representation of a class type. */
- def classOf[T]: java.lang.Class = null
+ def classOf[T]: Class = null
// aliases -------------------------------------------------------
@@ -36,8 +36,20 @@ object Predef {
type unit = scala.Unit
type String = java.lang.String
- type NullPointerException = java.lang.NullPointerException
+ type Class = java.lang.Class;
+
type Throwable = java.lang.Throwable
+ type Exception = java.lang.Exception
+ type Error = java.lang.Error
+ type RuntimeException = java.lang.RuntimeException;
+ type NullPointerException = java.lang.NullPointerException
+ type ClassCastException = java.lang.ClassCastException;
+ type IndexOutOfBoundsException = java.lang.IndexOutOfBoundsException;
+ type ArrayIndexOutOfBoundsException = java.lang.ArrayIndexOutOfBoundsException
+ type UnsupportedOperationException = java.lang.UnsupportedOperationException
+ type IllegalArgumentException = java.lang.IllegalArgumentException
+ type NoSuchElementException = java.util.NoSuchElementException
+ type NumberFormatException = java.lang.NumberFormatException
/*
type ~[a, b] = Tuple2[a, b]
@@ -63,11 +75,6 @@ object Predef {
def Tuple[a1, a2, a3, a4, a5, a6, a7, a8](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7, x8: a8) = Tuple8(x1, x2, x3, x4, x5, x6, x7, x8)
def Tuple[a1, a2, a3, a4, a5, a6, a7, a8, a9](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7, x8: a8, x9: a9) = Tuple9(x1, x2, x3, x4, x5, x6, x7, x8, x9)
-/*
- def id[a](x: a): a = x
- def fst[a](x: a, y: Any): a = x
- def scd[a](x: Any, y: a): a = y
-*/
val $scope = scala.xml.TopScope
type Function[-a,+b] = Function1[a,b]
@@ -85,12 +92,12 @@ object Predef {
def assert(assertion: Boolean): Unit = {
if (!assertion)
- throw new AssertionError("assertion failed")
+ throw new java.lang.AssertionError("assertion failed")
}
def assert(assertion: Boolean, message: Any): Unit = {
if (!assertion)
- throw new AssertionError("assertion failed: " + message)
+ throw new java.lang.AssertionError("assertion failed: " + message)
}
def assume(assumption: Boolean): Unit = {
@@ -107,15 +114,19 @@ object Predef {
implicit def identity[a](x: a): a = x
- implicit def int2ordered(x: int): Ordered[int] = new Ordered[int] with Proxy {
- def self: Any = x
- def compare (y: int): int = if (x < y) -1 else if (x > y) 1 else 0
- }
implicit def intWrapper(x: int) = new runtime.RichInt(x)
+ implicit def charWrapper(c: char) = new runtime.RichChar(c)
+
implicit def stringWrapper(x: String) = new runtime.RichString(x)
+
+ implicit def int2ordered(x: int): Ordered[int] = new Ordered[int] with Proxy {
+ def self: Any = x
+ def compare (y: int): int = if (x < y) -1 else if (x > y) 1 else 0
+ }
+
implicit def char2ordered(x: char): Ordered[char] = new Ordered[char] with Proxy {
def self: Any = x
def compare (y: char): int = if (x < y) -1 else if (x > y) 1 else 0
@@ -298,4 +309,9 @@ object Predef {
implicit def float2Float(x: float) = new java.lang.Float(x)
implicit def double2Double(x: double) = new java.lang.Double(x)
implicit def boolean2Boolean(x: boolean) = new java.lang.Boolean(x)
+
+ //
+ def currentThread = java.lang.Thread.currentThread();
+
+
}
diff --git a/src/library/scala/Seq.scala b/src/library/scala/Seq.scala
index a9fcf2524c..8879422969 100644
--- a/src/library/scala/Seq.scala
+++ b/src/library/scala/Seq.scala
@@ -12,7 +12,7 @@
package scala
-import compat.Platform.IllegalArgumentException
+import Predef.IllegalArgumentException
object Seq {
diff --git a/src/library/scala/Stream.scala b/src/library/scala/Stream.scala
index d873502056..54bf3ae694 100644
--- a/src/library/scala/Stream.scala
+++ b/src/library/scala/Stream.scala
@@ -13,7 +13,7 @@ package scala
import compat.StringBuilder
-import compat.Platform.NoSuchElementException
+import Predef.NoSuchElementException
/**
* The object <code>Stream</code> provides helper functions
diff --git a/src/library/scala/collection/Map.scala b/src/library/scala/collection/Map.scala
index 0d21faba6c..842544b3a4 100644
--- a/src/library/scala/collection/Map.scala
+++ b/src/library/scala/collection/Map.scala
@@ -12,7 +12,7 @@
package scala.collection
-import compat.Platform.NoSuchElementException
+//import Predef.NoSuchElementException
/** This class defines the interface of collections that unambiguously map
* keys to values (i.e. a key is mapped to at least one value).
diff --git a/src/library/scala/collection/immutable/ListMap.scala b/src/library/scala/collection/immutable/ListMap.scala
index 5ece1d0286..6979c973c5 100644
--- a/src/library/scala/collection/immutable/ListMap.scala
+++ b/src/library/scala/collection/immutable/ListMap.scala
@@ -12,7 +12,7 @@
package scala.collection.immutable
-import compat.Platform.NoSuchElementException
+//import Predef.NoSuchElementException
object ListMap {
def Empty[A, B] = new ListMap[A, B]
diff --git a/src/library/scala/collection/immutable/ListSet.scala b/src/library/scala/collection/immutable/ListSet.scala
index 19c74bbb27..823e3f02b3 100644
--- a/src/library/scala/collection/immutable/ListSet.scala
+++ b/src/library/scala/collection/immutable/ListSet.scala
@@ -12,7 +12,7 @@
package scala.collection.immutable
-import compat.Platform.NoSuchElementException
+//import Predef.NoSuchElementException
object ListSet {
/** constructs an empty ListSet
diff --git a/src/library/scala/collection/immutable/Queue.scala b/src/library/scala/collection/immutable/Queue.scala
index 5624a7eb21..ebfbbf7e19 100644
--- a/src/library/scala/collection/immutable/Queue.scala
+++ b/src/library/scala/collection/immutable/Queue.scala
@@ -12,7 +12,7 @@
package scala.collection.immutable
-import compat.Platform.NoSuchElementException
+//import Predef.NoSuchElementException
object Queue {
val Empty: Queue[Nothing] = new Queue()
diff --git a/src/library/scala/collection/immutable/Stack.scala b/src/library/scala/collection/immutable/Stack.scala
index 9599b40f97..fccf9197ef 100644
--- a/src/library/scala/collection/immutable/Stack.scala
+++ b/src/library/scala/collection/immutable/Stack.scala
@@ -12,7 +12,7 @@
package scala.collection.immutable
-import compat.Platform.NoSuchElementException
+//import Predef.NoSuchElementException
object Stack {
val Empty = new Stack[Nothing]
diff --git a/src/library/scala/collection/immutable/Tree.scala b/src/library/scala/collection/immutable/Tree.scala
index 3bb0eb8ced..eef8842e39 100644
--- a/src/library/scala/collection/immutable/Tree.scala
+++ b/src/library/scala/collection/immutable/Tree.scala
@@ -40,7 +40,7 @@
package scala.collection.immutable
-import compat.Platform.NoSuchElementException
+//import Predef.NoSuchElementException
/** <p>
* General Balanced Trees - highly efficient functional dictionaries.
diff --git a/src/library/scala/collection/mutable/Buffer.scala b/src/library/scala/collection/mutable/Buffer.scala
index c5f953cb05..02e5a2ad42 100644
--- a/src/library/scala/collection/mutable/Buffer.scala
+++ b/src/library/scala/collection/mutable/Buffer.scala
@@ -13,7 +13,6 @@ package scala.collection.mutable
import Predef._
-import compat.Platform.UnsupportedOperationException
/** Buffers are used to create sequences of elements incrementally by
* appending, prepending, or inserting new elements. It is also
diff --git a/src/library/scala/collection/mutable/ListBuffer.scala b/src/library/scala/collection/mutable/ListBuffer.scala
index abe65019bf..0907f1f50c 100644
--- a/src/library/scala/collection/mutable/ListBuffer.scala
+++ b/src/library/scala/collection/mutable/ListBuffer.scala
@@ -13,7 +13,6 @@ package scala.collection.mutable
import Predef._
-import compat.Platform.{IndexOutOfBoundsException, NoSuchElementException}
/** The class <code>ListBuffer</code> ..
*
diff --git a/src/library/scala/collection/mutable/Map.scala b/src/library/scala/collection/mutable/Map.scala
index 7106acb8a1..e1e08abd85 100644
--- a/src/library/scala/collection/mutable/Map.scala
+++ b/src/library/scala/collection/mutable/Map.scala
@@ -11,7 +11,7 @@
package scala.collection.mutable
-import compat.Platform.UnsupportedOperationException
+//import Predef.UnsupportedOperationException
/** This class represents mutable maps. Concrete map implementations
* just have to provide functionality for the abstract methods in
diff --git a/src/library/scala/collection/mutable/Message.scala b/src/library/scala/collection/mutable/Message.scala
index 337083b9e3..09b3dbd527 100644
--- a/src/library/scala/collection/mutable/Message.scala
+++ b/src/library/scala/collection/mutable/Message.scala
@@ -12,7 +12,7 @@
package scala.collection.mutable
-import compat.Platform.UnsupportedOperationException
+import Predef.UnsupportedOperationException
/** Class <code>Message</code> represents messages that are issued by observable
* collection classes whenever a data structure is changed. Class <code>Message</code>
diff --git a/src/library/scala/collection/mutable/MutableList.scala b/src/library/scala/collection/mutable/MutableList.scala
index f0349f584a..6e57074641 100644
--- a/src/library/scala/collection/mutable/MutableList.scala
+++ b/src/library/scala/collection/mutable/MutableList.scala
@@ -11,8 +11,8 @@
package scala.collection.mutable
-import compat.Platform.NoSuchElementException
+//import Predef.NoSuchElementException
/** This class is used internally to represent mutable lists. It is the
* basis for the implementation of the classes <code>Buffer</code>,
diff --git a/src/library/scala/collection/mutable/ObservableBuffer.scala b/src/library/scala/collection/mutable/ObservableBuffer.scala
index a38e442468..93f325cfaa 100644
--- a/src/library/scala/collection/mutable/ObservableBuffer.scala
+++ b/src/library/scala/collection/mutable/ObservableBuffer.scala
@@ -12,7 +12,7 @@
package scala.collection.mutable
-import compat.Platform.UnsupportedOperationException
+//import Predef.UnsupportedOperationException
/** This class is typically used as a mixin. It adds a subscription
* mechanism to the <code>Buffer</code> class into which this abstract
diff --git a/src/library/scala/collection/mutable/PriorityQueue.scala b/src/library/scala/collection/mutable/PriorityQueue.scala
index d32bb60376..2eb6298141 100644
--- a/src/library/scala/collection/mutable/PriorityQueue.scala
+++ b/src/library/scala/collection/mutable/PriorityQueue.scala
@@ -12,7 +12,7 @@
package scala.collection.mutable
-import compat.Platform.{NoSuchElementException, UnsupportedOperationException}
+//import Predef.{NoSuchElementException, UnsupportedOperationException}
/** This class implements priority queues using a heap. The
* elements of the queue have to be ordered in terms of the
diff --git a/src/library/scala/collection/mutable/Queue.scala b/src/library/scala/collection/mutable/Queue.scala
index 359f0d4c9c..3dbd38320b 100644
--- a/src/library/scala/collection/mutable/Queue.scala
+++ b/src/library/scala/collection/mutable/Queue.scala
@@ -12,7 +12,7 @@
package scala.collection.mutable
-import compat.Platform.{NoSuchElementException, UnsupportedOperationException}
+//import Predef.{NoSuchElementException, UnsupportedOperationException}
/** <code>Queue</code> objects implement data structures that allow to
* insert and retrieve elements in a first-in-first-out (FIFO) manner.
diff --git a/src/library/scala/collection/mutable/Set.scala b/src/library/scala/collection/mutable/Set.scala
index 6ae94dc4f3..83133392af 100644
--- a/src/library/scala/collection/mutable/Set.scala
+++ b/src/library/scala/collection/mutable/Set.scala
@@ -12,8 +12,6 @@
package scala.collection.mutable
-import compat.Platform.UnsupportedOperationException
-
/** This class represents mutable sets. Concrete set implementations
* just have to provide functionality for the abstract methods in
* <a href="../Set.html" target="contentFrame">
diff --git a/src/library/scala/collection/mutable/Stack.scala b/src/library/scala/collection/mutable/Stack.scala
index eacf69552a..59ad02e860 100644
--- a/src/library/scala/collection/mutable/Stack.scala
+++ b/src/library/scala/collection/mutable/Stack.scala
@@ -11,7 +11,6 @@
package scala.collection.mutable
-import compat.Platform.NoSuchElementException
/** A stack implements a data structure which allows to store and retrieve
* objects in a last-in-first-out (LIFO) fashion.
diff --git a/src/library/scala/compat/Math.scala b/src/library/scala/compat/Math.scala
index 81b5a54e00..de64dcc3c1 100644
--- a/src/library/scala/compat/Math.scala
+++ b/src/library/scala/compat/Math.scala
@@ -13,26 +13,28 @@ package scala.compat;
object Math {
- val MIN_BYTE = java.lang.Byte.MIN_VALUE;
- val MAX_BYTE = java.lang.Byte.MAX_VALUE;
- val MIN_SHORT = java.lang.Short.MIN_VALUE;
- val MAX_SHORT = java.lang.Short.MAX_VALUE;
- val MIN_CHAR = java.lang.Character.MIN_VALUE;
- val MAX_CHAR = java.lang.Character.MAX_VALUE;
- val MIN_INT = java.lang.Integer.MIN_VALUE;
- val MAX_INT = java.lang.Integer.MAX_VALUE;
- val MIN_LONG = java.lang.Long.MIN_VALUE;
- val MAX_LONG = java.lang.Long.MAX_VALUE;
- val MIN_FLOAT = java.lang.Float.MIN_VALUE;
- val MAX_FLOAT = java.lang.Float.MIN_VALUE;
- val MIN_DOUBLE = java.lang.Double.MIN_VALUE;
- val MAX_DOUBLE = java.lang.Double.MAX_VALUE;
-
- def min(x: Int, y: Int): Int = java.lang.Math.min(x, y);
- def max(x: Int, y: Int): Int = java.lang.Math.max(x, y);
-
- def ceil (x: Double): Double = java.lang.Math.ceil(x);
- def floor(x: Double): Double = java.lang.Math.floor(x);
- def log (x: Double): Double = java.lang.Math.log(x);
- def sqrt (x: Double): Double = java.lang.Math.sqrt(x);
+ val MIN_BYTE = java.lang.Byte.MIN_VALUE
+ val MAX_BYTE = java.lang.Byte.MAX_VALUE
+ val MIN_SHORT = java.lang.Short.MIN_VALUE
+ val MAX_SHORT = java.lang.Short.MAX_VALUE
+ val MIN_CHAR = java.lang.Character.MIN_VALUE
+ val MAX_CHAR = java.lang.Character.MAX_VALUE
+ val MIN_INT = java.lang.Integer.MIN_VALUE
+ val MAX_INT = java.lang.Integer.MAX_VALUE
+ val MIN_LONG = java.lang.Long.MIN_VALUE
+ val MAX_LONG = java.lang.Long.MAX_VALUE
+ val MIN_FLOAT = java.lang.Float.MIN_VALUE
+ val MAX_FLOAT = java.lang.Float.MIN_VALUE
+ val MIN_DOUBLE = java.lang.Double.MIN_VALUE
+ val MAX_DOUBLE = java.lang.Double.MAX_VALUE
+
+ val PI = java.lang.Math.PI
+
+ def min(x: Int, y: Int): Int = java.lang.Math.min(x, y)
+ def max(x: Int, y: Int): Int = java.lang.Math.max(x, y)
+
+ def ceil (x: Double): Double = java.lang.Math.ceil(x)
+ def floor(x: Double): Double = java.lang.Math.floor(x)
+ def log (x: Double): Double = java.lang.Math.log(x)
+ def sqrt (x: Double): Double = java.lang.Math.sqrt(x)
}
diff --git a/src/library/scala/compat/Platform.scala b/src/library/scala/compat/Platform.scala
index 08aa1f1188..fa32f93a72 100644
--- a/src/library/scala/compat/Platform.scala
+++ b/src/library/scala/compat/Platform.scala
@@ -12,39 +12,36 @@
package scala.compat;
-object Platform {
+import java.lang.System
+import Predef.Class
- type Class = java.lang.Class;
+object Platform {
type StackOverflowError = java.lang.StackOverflowError;
- type ClassCastException = java.lang.ClassCastException;
- type RuntimeException = java.lang.RuntimeException;
- type IndexOutOfBoundsException = java.lang.IndexOutOfBoundsException;
- type UnsupportedOperationException = java.lang.UnsupportedOperationException
- type IllegalArgumentException = java.lang.IllegalArgumentException
- type NoSuchElementException = java.util.NoSuchElementException
def arraycopy(src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int): Unit =
- Array.copy(src, srcPos, dest, destPos, length)
+ System.arraycopy(src, srcPos, dest, destPos, length)
/** create array of the same type as arrayInstance with the given length */
- def createArray(elemClass: Class, length: Int): Object =
+ def createArray(elemClass: Class, length: Int): AnyRef =
java.lang.reflect.Array.newInstance(elemClass, length);
def getClass(obj: AnyRef) = obj.getClass();
def getClassName(obj: AnyRef) = obj.getClass().getName();
def getName(cls: Class) = cls.getName();
def getElementClass(obj: AnyRef) = obj.getClass().getComponentType();
+ def getClassForName(name: String): Class = java.lang.Class.forName(name);
def printStackTrace(exc: java.lang.Throwable) = exc.printStackTrace();
def getMessage(exc: java.lang.Throwable) = exc.getMessage();
- private val eol = System.getProperty("line.separator", "\n")
+ val EOL = System.getProperty("line.separator", "\n")
+
def getStackTrace(exc: java.lang.Throwable): String = {
val s = new StringBuilder()
for (val trElem <- exc.getStackTrace()) {
s.append(trElem.toString())
- s.append(eol)
+ s.append(EOL)
}
s.toString()
}
@@ -53,14 +50,8 @@ object Platform {
str.split(separator.toString());
}
- def currentThread = java.lang.Thread.currentThread();
-
- def parseByte(s: String): Byte = java.lang.Byte.parseByte(s);
- def parseShort(s: String): Short = java.lang.Short.parseShort(s);
- def parseInt(s: String): Int = java.lang.Integer.parseInt(s);
- def parseLong(s: String): Long = java.lang.Long.parseLong(s);
- def parseFloat(s: String): Float = java.lang.Float.parseFloat(s);
- def parseDouble(s: String): Double = java.lang.Double.parseDouble(s);
+ def currentTime: Long = System.currentTimeMillis()
+ def collectGarbage: Unit = System.gc()
- def isDigit(c: Char): Boolean = java.lang.Character.isDigit(c);
+ //def isDigit(c: Char): Boolean = java.lang.Character.isDigit(c);
}
diff --git a/src/library/scala/compat/StringBuilder.scala b/src/library/scala/compat/StringBuilder.scala
index a71c9004f2..d64ec65ff7 100644
--- a/src/library/scala/compat/StringBuilder.scala
+++ b/src/library/scala/compat/StringBuilder.scala
@@ -11,27 +11,45 @@
package scala.compat
-class StringBuilder {
- val str = new StringBuffer()
+import java.lang.StringBuffer
- def this(s: String) = { this(); str.append(s) }
+final class StringBuilder(str: StringBuffer) {
- def charAt(i: Int): Char = str.charAt(i)
-
- def append(x: Any): StringBuilder = {
- str.append(x)
- this
- }
+ def this() = this(new StringBuffer())
+ def this(n: Int) = this(new StringBuffer(n))
+ def this(s: String) = this(new StringBuffer(s))
- def append(x: Char): StringBuilder = {
- str.append(x)
- this
- }
+ def charAt(i: Int): Char = str.charAt(i)
- def append(x: String): StringBuilder = {
- str.append(x)
- this
- }
+ def setCharAt(index: Int, c: Char): Unit = str.setCharAt(index, c)
+
+ def append(x: Any): StringBuilder = { str.append(x); this }
+ def append(x: Boolean): StringBuilder = { str.append(x); this }
+ def append(x: Byte): StringBuilder = { str.append(x); this }
+ def append(x: Short): StringBuilder = { str.append(x); this }
+ def append(x: Char): StringBuilder = { str.append(x); this }
+ def append(x: Int): StringBuilder = { str.append(x); this }
+ def append(x: Long): StringBuilder = { str.append(x); this }
+ def append(x: Float): StringBuilder = { str.append(x); this }
+ def append(x: Double): StringBuilder = { str.append(x); this }
+ def append(x: String): StringBuilder = { str.append(x); this }
+ def append(x: Array[Char]): StringBuilder = { str.append(x); this }
+ def append(x: Array[Char], start: Int, length: Int): StringBuilder =
+ { str.append(x, start, length); this }
+
+ def insert(at: Int, x: Any): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Boolean): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Byte): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Short): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Char): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Int): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Long): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Float): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Double): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: String): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Array[Char]): StringBuilder = { str.insert(at, x); this }
+ def insert(at: Int, x: Array[Char], start: Int, length: Int): StringBuilder =
+ { str.insert(at, x, start, length); this }
def length(): Int = str.length()
diff --git a/src/library/scala/concurrent/Actor.scala b/src/library/scala/concurrent/Actor.scala
index 8017ae43fb..8f2534bb95 100644
--- a/src/library/scala/concurrent/Actor.scala
+++ b/src/library/scala/concurrent/Actor.scala
@@ -12,7 +12,7 @@
package scala.concurrent
-import compat.Platform.IllegalArgumentException
+import java.lang.Thread
/**
* The class <code>Actor</code> ...
@@ -27,11 +27,11 @@ abstract class Actor extends Thread {
in.send(msg)
def receive[a](f: PartialFunction[in.Message, a]): a =
- if (Thread.currentThread() == this) in.receive(f)
+ if (currentThread == this) in.receive(f)
else throw new IllegalArgumentException("receive called not on own process")
def receiveWithin[a](msec: long)(f: PartialFunction[in.Message, a]): a =
- if (Thread.currentThread() == this) in.receiveWithin(msec)(f)
+ if (currentThread == this) in.receiveWithin(msec)(f)
else throw new IllegalArgumentException("receiveWithin called not on own process")
private var pid: Pid = null
diff --git a/src/library/scala/concurrent/Lock.scala b/src/library/scala/concurrent/Lock.scala
index cd7371aa86..d20f3806d7 100644
--- a/src/library/scala/concurrent/Lock.scala
+++ b/src/library/scala/concurrent/Lock.scala
@@ -20,7 +20,7 @@ class Lock {
var available = true
def acquire = synchronized {
- if (!available) wait()
+ while (!available) wait()
available = false
}
diff --git a/src/library/scala/concurrent/NameServer.scala b/src/library/scala/concurrent/NameServer.scala
index 806e864038..bb15def799 100644
--- a/src/library/scala/concurrent/NameServer.scala
+++ b/src/library/scala/concurrent/NameServer.scala
@@ -12,8 +12,6 @@
package scala.concurrent
-import compat.Platform.IllegalArgumentException
-
/**
* @author Erik Stenman
* @version 1.0, 01/10/2003
diff --git a/src/library/scala/concurrent/Process.scala b/src/library/scala/concurrent/Process.scala
index 39ce04484e..b054b23ecb 100644
--- a/src/library/scala/concurrent/Process.scala
+++ b/src/library/scala/concurrent/Process.scala
@@ -12,8 +12,6 @@
package scala.concurrent
-import compat.Platform.UnsupportedOperationException
-
/** This object ...
*
* @author Erik Stenman
@@ -43,8 +41,8 @@ object Process {
* @throws scala.compat.Platform.UnsupportedOperationException
*/
def self: Process =
- if (Thread.currentThread().isInstanceOf[Process])
- Thread.currentThread().asInstanceOf[Process]
+ if (currentThread.isInstanceOf[Process])
+ currentThread.asInstanceOf[Process]
else
throw new UnsupportedOperationException("Self called outside a process")
diff --git a/src/library/scala/concurrent/ops.scala b/src/library/scala/concurrent/ops.scala
index e70a0ed606..73cfedc676 100644
--- a/src/library/scala/concurrent/ops.scala
+++ b/src/library/scala/concurrent/ops.scala
@@ -12,6 +12,8 @@
package scala.concurrent
+import java.lang.Thread
+
/** The object <code>ops</code> ...
*
* @author Martin Odersky
diff --git a/src/library/scala/io/BytePickle.scala b/src/library/scala/io/BytePickle.scala
index a2ee0d7052..ae5cd1a80c 100644
--- a/src/library/scala/io/BytePickle.scala
+++ b/src/library/scala/io/BytePickle.scala
@@ -13,7 +13,6 @@ package scala.io
import scala.collection.mutable.{HashMap,ArrayBuffer}
-import compat.Platform.IllegalArgumentException
/**
* Pickler combinators.
diff --git a/src/library/scala/io/Position.scala b/src/library/scala/io/Position.scala
index 6173233176..b31b22c71c 100644
--- a/src/library/scala/io/Position.scala
+++ b/src/library/scala/io/Position.scala
@@ -13,7 +13,6 @@ package scala.io
import compat.StringBuilder
-import compat.Platform.IllegalArgumentException
/** <p>
* The object <code>Position</code> provides convenience methods to encode
diff --git a/src/library/scala/io/Source.scala b/src/library/scala/io/Source.scala
index faa7165ff7..dfdbd86849 100644
--- a/src/library/scala/io/Source.scala
+++ b/src/library/scala/io/Source.scala
@@ -11,11 +11,10 @@
package scala.io
+
import java.io.{File, FileInputStream, PrintStream}
import compat.StringBuilder
-import compat.Platform.IllegalArgumentException
-
/** This object provides convenience methods to create an iterable
* representation of a source file.
@@ -216,7 +215,7 @@ abstract class Source extends Iterator[Char] {
* @throws scala.compat.Platform.IllegalArgumentException
*/
def getLine(line: Int): String = {
- val buf = new StringBuffer()
+ val buf = new StringBuilder()
val it = reset
var i = 0
@@ -285,7 +284,7 @@ abstract class Source extends Iterator[Char] {
* @param out ...
*/
def report(pos: Int, msg: String, out: PrintStream): Unit = {
- val buf = new StringBuffer
+ val buf = new StringBuilder
val line = Position.line(pos)
val col = Position.column(pos)
buf.append(descr + ":" + line + ":" + col + ": " + msg)
diff --git a/src/library/scala/io/UTF8Codec.scala b/src/library/scala/io/UTF8Codec.scala
index 729e79586e..a1d688cb1e 100644
--- a/src/library/scala/io/UTF8Codec.scala
+++ b/src/library/scala/io/UTF8Codec.scala
@@ -77,7 +77,7 @@ object UTF8Codec {
def decode(src: Array[Byte], from: Int, len: Int): String = {
val cs = new Array[Char](len)
- String.copyValueOf(cs, 0, decode(src, 0, cs, 0, len))
+ new String(cs, 0, decode(src, 0, cs, 0, len))
}
}
diff --git a/src/library/scala/mobile/Code.scala b/src/library/scala/mobile/Code.scala
index e185db0f40..e7166bfc1a 100644
--- a/src/library/scala/mobile/Code.scala
+++ b/src/library/scala/mobile/Code.scala
@@ -11,8 +11,9 @@
package scala.mobile
-import java.lang.reflect.{Constructor, Method, Modifier}
+import java.lang.reflect.{Constructor, Method, Modifier}
+import java.lang.NoSuchMethodException
/** The class <code>Code</code> provides <code>apply</code> methods
* with different arities (actually up to 9 parameters) to invoke
diff --git a/src/library/scala/mobile/Location.scala b/src/library/scala/mobile/Location.scala
index 2c6aae6cae..246db26fc9 100644
--- a/src/library/scala/mobile/Location.scala
+++ b/src/library/scala/mobile/Location.scala
@@ -12,11 +12,11 @@
package scala.mobile
+import java.lang.ClassLoader
import java.net._
import scala.collection.mutable._
-
/** The class <code>Location</code> provides a <code>create</code>
* method to instantiate objects from a network location by
* specifying the URL address of the jar/class file.<p/>
diff --git a/src/library/scala/reflect/Code.scala b/src/library/scala/reflect/Code.scala
index 62f7e9b2fa..780bd5518c 100644
--- a/src/library/scala/reflect/Code.scala
+++ b/src/library/scala/reflect/Code.scala
@@ -12,9 +12,11 @@
package scala.reflect
+import Predef.Error
+
class Code[Type](val tree: Tree)
object Code {
def lift[A](tree: A): Code[A] =
throw new Error("Code was not lifted by compiler")
-} \ No newline at end of file
+}
diff --git a/src/library/scala/runtime/BoxedAnyArray.scala b/src/library/scala/runtime/BoxedAnyArray.scala
index e18ba86cca..303f25def8 100644
--- a/src/library/scala/runtime/BoxedAnyArray.scala
+++ b/src/library/scala/runtime/BoxedAnyArray.scala
@@ -12,6 +12,9 @@
package scala.runtime
+import Predef.Class
+import compat.Platform
+
/**
* Arrays created by <code>new Array[T](length)</code> where <code>T</code>
* is a type variable.
@@ -19,12 +22,12 @@ package scala.runtime
[serializable]
final class BoxedAnyArray(val length: Int) extends BoxedArray {
- private var boxed = new Array[Object](length)
+ private var boxed = new Array[AnyRef](length)
private val hash = boxed.hashCode()
- private var unboxed: Object = null
+ private var unboxed: AnyRef = null
private var elemClass: Class = null
- def apply(index: Int): Object = synchronized {
+ def apply(index: Int): AnyRef = synchronized {
if (unboxed == null)
boxed(index);
else if (elemClass eq ScalaRunTime.IntTYPE)
@@ -44,10 +47,10 @@ final class BoxedAnyArray(val length: Int) extends BoxedArray {
else if (elemClass eq ScalaRunTime.BooleanTYPE)
BoxedBoolean.box(unboxed.asInstanceOf[Array[Boolean]](index))
else
- unboxed.asInstanceOf[Array[Object]](index)
+ unboxed.asInstanceOf[Array[AnyRef]](index)
}
- def update(index: Int, elem: Object): Unit = synchronized {
+ def update(index: Int, elem: AnyRef): Unit = synchronized {
if (unboxed == null)
boxed(index) = elem
else if (elemClass eq ScalaRunTime.IntTYPE)
@@ -67,10 +70,10 @@ final class BoxedAnyArray(val length: Int) extends BoxedArray {
else if (elemClass eq ScalaRunTime.BooleanTYPE)
unboxed.asInstanceOf[Array[Boolean]](index) = elem.asInstanceOf[BoxedBoolean].value
else
- unboxed.asInstanceOf[Array[Object]](index) = elem
+ unboxed.asInstanceOf[Array[AnyRef]](index) = elem
}
- def unbox(elemTag: String): Object =
+ def unbox(elemTag: String): AnyRef =
if (elemTag eq ScalaRunTime.IntTag) unbox(ScalaRunTime.IntTYPE)
else if (elemTag eq ScalaRunTime.DoubleTag) unbox(ScalaRunTime.DoubleTYPE)
else if (elemTag eq ScalaRunTime.FloatTag) unbox(ScalaRunTime.FloatTYPE)
@@ -79,9 +82,9 @@ final class BoxedAnyArray(val length: Int) extends BoxedArray {
else if (elemTag eq ScalaRunTime.ByteTag) unbox(ScalaRunTime.ByteTYPE)
else if (elemTag eq ScalaRunTime.ShortTag) unbox(ScalaRunTime.ShortTYPE)
else if (elemTag eq ScalaRunTime.BooleanTag) unbox(ScalaRunTime.BooleanTYPE)
- else unbox(Class.forName(elemTag))
+ else unbox(Platform.getClassForName(elemTag))
- def unbox(elemClass: Class): Object = synchronized {
+ def unbox(elemClass: Class): AnyRef = synchronized {
if (unboxed == null) {
this.elemClass = elemClass;
if (elemClass eq ScalaRunTime.IntTYPE) {
@@ -157,11 +160,11 @@ final class BoxedAnyArray(val length: Int) extends BoxedArray {
}
unboxed = newvalue;
} else if (elemClass == boxed.getClass().getComponentType()) {
- // todo: replace with ScalaRunTime.Object.class
+ // todo: replace with ScalaRunTime.AnyRef.class
unboxed = boxed
} else {
- unboxed = java.lang.reflect.Array.newInstance(elemClass, length);
- System.arraycopy(boxed, 0, unboxed, 0, length);
+ unboxed = Platform.createArray(elemClass, length);
+ Platform.arraycopy(boxed, 0, unboxed, 0, length);
}
boxed = null
}
@@ -175,12 +178,12 @@ final class BoxedAnyArray(val length: Int) extends BoxedArray {
override def hashCode(): Int = hash
- def value: Object = {
+ def value: AnyRef = {
if (unboxed == null) throw new NotDefinedError("BoxedAnyArray.value")
unboxed
}
- private def adapt(other: Object): Object =
+ private def adapt(other: AnyRef): AnyRef =
if (this.unboxed == null)
other match {
case that: BoxedAnyArray =>
@@ -223,23 +226,23 @@ final class BoxedAnyArray(val length: Int) extends BoxedArray {
other
}
- override def copyFrom(src: Object, from: Int, to: Int, len: Int): Unit = {
+ override def copyFrom(src: AnyRef, from: Int, to: Int, len: Int): Unit = {
val src1 = adapt(src)
Array.copy(src1, from, if (unboxed != null) unboxed else boxed, to, len)
}
- override def copyTo(from: Int, dest: Object, to: Int, len: Int): Unit = {
+ override def copyTo(from: Int, dest: AnyRef, to: Int, len: Int): Unit = {
var dest1 = adapt(dest)
Array.copy(if (unboxed != null) unboxed else boxed, from, dest1, to, len)
}
- override def subArray(start: Int, end: Int): Object = {
+ override def subArray(start: Int, end: Int): AnyRef = {
val result = new BoxedAnyArray(end - start);
Array.copy(this, start, result, 0, end - start)
result
}
- override def filter(p: Any => Boolean): Object = {
+ override def filter(p: Any => Boolean): AnyRef = {
val include = new Array[Boolean](length)
var len = 0
var i = 0
diff --git a/src/library/scala/runtime/BoxedArray.scala b/src/library/scala/runtime/BoxedArray.scala
index 7a213f05eb..7e7d2ba88e 100644
--- a/src/library/scala/runtime/BoxedArray.scala
+++ b/src/library/scala/runtime/BoxedArray.scala
@@ -11,56 +11,60 @@
package scala.runtime
+
+import Predef.Class
+import Predef.Error
+
/**
* <p>A class representing <code>Array[T]</code></p>
*/
-abstract class BoxedArray extends PartialFunction[Int, Object] with Seq[Object] {
+abstract class BoxedArray extends PartialFunction[Int, AnyRef] with Seq[AnyRef] {
/** The length of the array */
def length: Int
/** The element at given index */
- def apply(index: Int): Object
+ def apply(index: Int): AnyRef
/** Update element at given index */
- def update(index: Int, elem: Object): Unit
+ def update(index: Int, elem: AnyRef): Unit
/** Convert to Java array.
* @param elemTag Either one of the tags ".N" where N is the name of a primitive type
* (@see ScalaRunTime), or a full class name.
*/
- def unbox(elemTag: String): Object
+ def unbox(elemTag: String): AnyRef
- def unbox(elemClass: Class): Object
+ def unbox(elemClass: Class): AnyRef
override def isDefinedAt(x: Int): Boolean = 0 <= x && x < length
- def elements = new Iterator[Object] {
+ def elements = new Iterator[AnyRef] {
var index = 0
def hasNext: Boolean = index < length
- def next: Object = { val i = index; index = i + 1; apply(i) }
+ def next: AnyRef = { val i = index; index = i + 1; apply(i) }
}
/** The underlying array value
*/
- def value: Object
+ def value: AnyRef
- def copyFrom(src: Object, from: Int, to: Int, len: Int): Unit =
+ def copyFrom(src: AnyRef, from: Int, to: Int, len: Int): Unit =
Array.copy(src, from, value, to, len)
- def copyTo(from: Int, dest: Object, to: Int, len: Int): Unit = {
+ def copyTo(from: Int, dest: AnyRef, to: Int, len: Int): Unit = {
Array.copy(value, from, dest, to, len)
}
- override def toArray[b>:Object]: Array[b] = {
+ override def toArray[b>:AnyRef]: Array[b] = {
val len = length
val res = new Array[b](len)
copyTo(0, res, 0, len)
res
}
- def subArray(from: Int, end: Int): Object
+ def subArray(from: Int, end: Int): AnyRef
- def filter(p: Any => Boolean): Object
+ def filter(p: Any => Boolean): AnyRef
final def map[b](f: Any => b): Array[b] = {
val len = length
@@ -84,11 +88,11 @@ abstract class BoxedArray extends PartialFunction[Int, Object] with Seq[Object]
Array.concat(tmp: _*)
}
- final def zip[b](that: Array[b]): Array[Tuple2[Object,b]] = {
+ final def zip[b](that: Array[b]): Array[Tuple2[AnyRef,b]] = {
val len = length
if(len != that.length)
throw new Error("zipping arrays of different length")
- val result = new Array[Tuple2[Object,b]](len)
+ val result = new Array[Tuple2[AnyRef,b]](len)
var i = 0
while (i < len) {
result(i) = new Tuple2(this(i), that(i))
@@ -97,9 +101,9 @@ abstract class BoxedArray extends PartialFunction[Int, Object] with Seq[Object]
result
}
- final def zipWithIndex: Array[Tuple2[Object,Int]] = {
+ final def zipWithIndex: Array[Tuple2[AnyRef,Int]] = {
val len = length
- val result = new Array[Tuple2[Object,Int]](len)
+ val result = new Array[Tuple2[AnyRef,Int]](len)
var i = 0
while (i < len) {
result(i) = new Tuple2(this(i), i)
diff --git a/src/library/scala/runtime/BoxedBooleanArray.scala b/src/library/scala/runtime/BoxedBooleanArray.scala
index a11574653d..ccf3b79461 100644
--- a/src/library/scala/runtime/BoxedBooleanArray.scala
+++ b/src/library/scala/runtime/BoxedBooleanArray.scala
@@ -12,19 +12,21 @@
package scala.runtime
+import Predef.Class
+
[serializable]
final class BoxedBooleanArray(val value: Array[Boolean]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = BoxedBoolean.box(value(index))
+ def apply(index: Int): AnyRef = BoxedBoolean.box(value(index))
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedBoolean].value
}
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any) =
value == other ||
diff --git a/src/library/scala/runtime/BoxedByteArray.scala b/src/library/scala/runtime/BoxedByteArray.scala
index a7f5a536e3..16792d6de8 100644
--- a/src/library/scala/runtime/BoxedByteArray.scala
+++ b/src/library/scala/runtime/BoxedByteArray.scala
@@ -12,19 +12,21 @@
package scala.runtime
+import Predef.Class
+
[serializable]
final class BoxedByteArray(val value: Array[Byte]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = BoxedByte.box(value(index))
+ def apply(index: Int): AnyRef = BoxedByte.box(value(index))
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedNumber].byteValue()
}
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any) =
value == other ||
diff --git a/src/library/scala/runtime/BoxedCharArray.scala b/src/library/scala/runtime/BoxedCharArray.scala
index fe86be40c5..928d3f67cc 100644
--- a/src/library/scala/runtime/BoxedCharArray.scala
+++ b/src/library/scala/runtime/BoxedCharArray.scala
@@ -12,19 +12,21 @@
package scala.runtime;
+import Predef.Class
+
[serializable]
final class BoxedCharArray(val value: Array[Char]) extends BoxedArray {
def length: Int = value.length;
- def apply(index: Int): Object = BoxedChar.box(value(index));
+ def apply(index: Int): AnyRef = BoxedChar.box(value(index));
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedNumber].charValue()
}
- def unbox(elemTag: String): Object = value;
- def unbox(elemClass: Class): Object = value;
+ def unbox(elemTag: String): AnyRef = value;
+ def unbox(elemClass: Class): AnyRef = value;
override def equals(other: Any) = (
value == other ||
diff --git a/src/library/scala/runtime/BoxedDoubleArray.scala b/src/library/scala/runtime/BoxedDoubleArray.scala
index 6b22bf846b..55bcfbe520 100644
--- a/src/library/scala/runtime/BoxedDoubleArray.scala
+++ b/src/library/scala/runtime/BoxedDoubleArray.scala
@@ -12,19 +12,21 @@
package scala.runtime
+import Predef.Class
+
[serializable]
final class BoxedDoubleArray(val value: Array[Double]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = BoxedDouble.box(value(index))
+ def apply(index: Int): AnyRef = BoxedDouble.box(value(index))
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedNumber].doubleValue()
}
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any) =
value == other ||
diff --git a/src/library/scala/runtime/BoxedFloatArray.scala b/src/library/scala/runtime/BoxedFloatArray.scala
index 1ef4ade45e..a722991e9d 100644
--- a/src/library/scala/runtime/BoxedFloatArray.scala
+++ b/src/library/scala/runtime/BoxedFloatArray.scala
@@ -12,19 +12,21 @@
package scala.runtime
+import Predef.Class
+
[serializable]
final class BoxedFloatArray(val value: Array[Float]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = BoxedFloat.box(value(index))
+ def apply(index: Int): AnyRef = BoxedFloat.box(value(index))
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedNumber].floatValue()
}
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any) =
value == other ||
diff --git a/src/library/scala/runtime/BoxedIntArray.scala b/src/library/scala/runtime/BoxedIntArray.scala
index 7cf7f48521..ad8db390d6 100644
--- a/src/library/scala/runtime/BoxedIntArray.scala
+++ b/src/library/scala/runtime/BoxedIntArray.scala
@@ -12,19 +12,21 @@
package scala.runtime
+import Predef.Class
+
[serializable]
final class BoxedIntArray(val value: Array[Int]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = BoxedInt.box(value(index))
+ def apply(index: Int): AnyRef = BoxedInt.box(value(index))
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedNumber].intValue()
}
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any) =
value == other ||
diff --git a/src/library/scala/runtime/BoxedLongArray.scala b/src/library/scala/runtime/BoxedLongArray.scala
index 755fec8f9f..6592cc2408 100644
--- a/src/library/scala/runtime/BoxedLongArray.scala
+++ b/src/library/scala/runtime/BoxedLongArray.scala
@@ -12,19 +12,21 @@
package scala.runtime
+import Predef.Class
+
[serializable]
final class BoxedLongArray(val value: Array[Long]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = BoxedLong.box(value(index))
+ def apply(index: Int): AnyRef = BoxedLong.box(value(index))
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedNumber].longValue()
}
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any) =
value == other ||
diff --git a/src/library/scala/runtime/BoxedObjectArray.scala b/src/library/scala/runtime/BoxedObjectArray.scala
index 7aeed09975..2e42c1c4a4 100644
--- a/src/library/scala/runtime/BoxedObjectArray.scala
+++ b/src/library/scala/runtime/BoxedObjectArray.scala
@@ -12,17 +12,19 @@
package scala.runtime
+import Predef.Class
+
[serializable]
-final class BoxedObjectArray(val value: Array[Object]) extends BoxedArray {
+final class BoxedObjectArray(val value: Array[AnyRef]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = value(index)
+ def apply(index: Int): AnyRef = value(index)
- def update(index: Int, elem: Object): Unit = { value(index) = elem }
+ def update(index: Int, elem: AnyRef): Unit = { value(index) = elem }
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any): Boolean =
value == other ||
@@ -30,18 +32,18 @@ final class BoxedObjectArray(val value: Array[Object]) extends BoxedArray {
override def hashCode(): Int = value.hashCode()
- private def create(length: Int): Array[Object] = {
+ private def create(length: Int): Array[AnyRef] = {
val elemClass = value.getClass().getComponentType()
- java.lang.reflect.Array.newInstance(elemClass, length).asInstanceOf[Array[Object]]
+ java.lang.reflect.Array.newInstance(elemClass, length).asInstanceOf[Array[AnyRef]]
}
- override def subArray(start: Int, end: Int): Array[Object] = {
+ override def subArray(start: Int, end: Int): Array[AnyRef] = {
val result = create(end - start)
Array.copy(value, start, result, 0, end - start)
result
}
- override def filter(p: Any => Boolean): Array[Object] = {
+ override def filter(p: Any => Boolean): Array[AnyRef] = {
val include = new Array[Boolean](value.length)
var len = 0
var i = 0
diff --git a/src/library/scala/runtime/BoxedShortArray.scala b/src/library/scala/runtime/BoxedShortArray.scala
index 9179178a32..f1b37ca5b0 100644
--- a/src/library/scala/runtime/BoxedShortArray.scala
+++ b/src/library/scala/runtime/BoxedShortArray.scala
@@ -12,19 +12,21 @@
package scala.runtime;
+import Predef.Class
+
[serializable]
final class BoxedShortArray(val value: Array[Short]) extends BoxedArray {
def length: Int = value.length
- def apply(index: Int): Object = BoxedShort.box(value(index))
+ def apply(index: Int): AnyRef = BoxedShort.box(value(index))
- def update(index: Int, elem: Object): Unit = {
+ def update(index: Int, elem: AnyRef): Unit = {
value(index) = elem.asInstanceOf[BoxedNumber].shortValue()
}
- def unbox(elemTag: String): Object = value
- def unbox(elemClass: Class): Object = value
+ def unbox(elemTag: String): AnyRef = value
+ def unbox(elemClass: Class): AnyRef = value
override def equals(other: Any) =
value == other ||
diff --git a/src/library/scala/runtime/NonLocalReturnException.scala b/src/library/scala/runtime/NonLocalReturnException.scala
index c5051a5ed9..8043b6de81 100644
--- a/src/library/scala/runtime/NonLocalReturnException.scala
+++ b/src/library/scala/runtime/NonLocalReturnException.scala
@@ -12,4 +12,4 @@
package scala.runtime
-class NonLocalReturnException[T](val key: Object, val value: T) extends RuntimeException
+class NonLocalReturnException[T](val key: AnyRef, val value: T) extends RuntimeException
diff --git a/src/library/scala/runtime/RichString.scala b/src/library/scala/runtime/RichString.scala
index a052335719..d4010bd7ba 100755
--- a/src/library/scala/runtime/RichString.scala
+++ b/src/library/scala/runtime/RichString.scala
@@ -11,8 +11,8 @@
package scala.runtime
-
-import compat.Platform.NoSuchElementException
+import Predef._
+import compat.Math
final class RichString(s: String) {
@@ -117,5 +117,12 @@ final class RichString(s: String) {
* </blockquote>
*/
def stripMargin: String = stripMargin('|')
-}
+ def toByte: Byte = java.lang.Byte.parseByte(s)
+ def toShort: Short = java.lang.Short.parseShort(s)
+ def toInt: Int = java.lang.Integer.parseInt(s)
+ def toLong: Long = java.lang.Long.parseLong(s)
+ def toFloat: Float = java.lang.Float.parseFloat(s)
+ def toDouble: Double = java.lang.Double.parseDouble(s)
+
+}
diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala
index dfd79c84f8..10d8683891 100644
--- a/src/library/scala/runtime/ScalaRunTime.scala
+++ b/src/library/scala/runtime/ScalaRunTime.scala
@@ -12,6 +12,9 @@
package scala.runtime;
+import Predef.{Class, Throwable}
+import java.lang.Runnable
+
object ScalaRunTime {
/** Names for primitive types, used by array unboxing */
@@ -114,12 +117,12 @@ object ScalaRunTime {
def longValue (x: BoxedNumber ): Long = if (x eq null) 0L else x.longValue();
def floatValue (x: BoxedNumber ): Float = if (x eq null) 0.0F else x.floatValue();
def doubleValue (x: BoxedNumber ): Double = if (x eq null) 0.0D else x.doubleValue();
- def arrayValue (x: BoxedArray, elemTag: String): Object =
+ def arrayValue (x: BoxedArray, elemTag: String): AnyRef =
if (x eq null) null else x.unbox(elemTag);
- def arrayValue (x: BoxedArray, elemClass: Class): Object =
+ def arrayValue (x: BoxedArray, elemClass: Class): AnyRef =
if (x eq null) null else x.unbox(elemClass);
- def boxArray(value: Object): BoxedArray = value match {
+ def boxArray(value: AnyRef): BoxedArray = value match {
case x: Array[Byte] => new BoxedByteArray(x)
case x: Array[Short] => new BoxedShortArray(x)
case x: Array[Char] => new BoxedCharArray(x)
@@ -128,7 +131,7 @@ object ScalaRunTime {
case x: Array[Float] => new BoxedFloatArray(x)
case x: Array[Double] => new BoxedDoubleArray(x)
case x: Array[Boolean] => new BoxedBooleanArray(x)
- case x: Array[Object] => new BoxedObjectArray(x)
+ case x: Array[AnyRef] => new BoxedObjectArray(x)
case x: BoxedArray => x
}
}
diff --git a/src/library/scala/testing/Benchmark.scala b/src/library/scala/testing/Benchmark.scala
index c3ccacb084..7f4db62de8 100644
--- a/src/library/scala/testing/Benchmark.scala
+++ b/src/library/scala/testing/Benchmark.scala
@@ -12,6 +12,8 @@
package scala.testing
+import compat.Platform
+
/** <code>Benchmark</code> can be used to quickly turn an existing
* class into a benchmark. Here is a short example:
*
@@ -47,10 +49,10 @@ trait Benchmark {
*/
def runBenchmark(noTimes: Int): List[Long] =
for (val i <- List.range(1, noTimes + 1)) yield {
- val startTime = System.currentTimeMillis()
+ val startTime = Platform.currentTime
run
- val stopTime = System.currentTimeMillis()
- System.gc()
+ val stopTime = Platform.currentTime
+ Platform.collectGarbage
stopTime - startTime
}
@@ -63,13 +65,12 @@ trait Benchmark {
def main(args: Array[String]): Unit = {
if (args.length > 1) {
val logFile = new java.io.FileWriter(args(1), true) // append, not overwrite
- val eol = System.getProperty("line.separator", "\n")
logFile.write(getClass().getName())
- for (val t <- runBenchmark(Integer.parseInt(args(0))))
+ for (val t <- runBenchmark(args(0).toInt))
logFile.write("\t\t" + t)
- logFile.write(eol)
+ logFile.write(Platform.EOL)
logFile.flush()
} else
Console.println("Usage: scala benchmarks.program <runs> <logfile>")
diff --git a/src/library/scala/util/Fluid.scala b/src/library/scala/util/Fluid.scala
index 80725d3bb3..ebfefada35 100644
--- a/src/library/scala/util/Fluid.scala
+++ b/src/library/scala/util/Fluid.scala
@@ -6,10 +6,14 @@
** |/ **
\* */
-// $Id: $
+// $Id$
+
package scala.util
+
+import java.lang.InheritableThreadLocal
+
/** Fluids provide a binding mechanism where the current
* value is found through <em>dynamic scope</em>, but where
* access to the fluid itself is resolved through </em>static
@@ -43,7 +47,7 @@ package scala.util
*/
class Fluid[T](init: T) {
private val tl = new InheritableThreadLocal {
- override def initialValue = init.asInstanceOf[Object]
+ override def initialValue = init.asInstanceOf[AnyRef]
}
/** Retrieve the current value */
diff --git a/src/library/scala/util/automata/BaseBerrySethi.scala b/src/library/scala/util/automata/BaseBerrySethi.scala
index e0198a4592..7a7a6c642f 100644
--- a/src/library/scala/util/automata/BaseBerrySethi.scala
+++ b/src/library/scala/util/automata/BaseBerrySethi.scala
@@ -17,8 +17,6 @@ import scala.util.regexp.Base
import scala.collection.mutable
import scala.collection.immutable
import compat.Platform
-import Platform.IllegalArgumentException
-
/** this turns a regexp over A into a NondetWorkAutom over A using the
* celebrated position automata construction (also called Berry-Sethi or
diff --git a/src/library/scala/util/parsing/SimpleTokenizer.scala b/src/library/scala/util/parsing/SimpleTokenizer.scala
index 7ac76fac79..b7bab36e81 100644
--- a/src/library/scala/util/parsing/SimpleTokenizer.scala
+++ b/src/library/scala/util/parsing/SimpleTokenizer.scala
@@ -57,7 +57,7 @@ class SimpleTokenizer(in: Iterator[char], delimiters: String) extends Iterator[S
ch = nextChar
}
}
- if (tracing) System.out.println("<" + buf.toString() + ">")
+ if (tracing) Console.println("<" + buf.toString() + ">")
buf.toString()
}
}
diff --git a/src/library/scala/xml/Comment.scala b/src/library/scala/xml/Comment.scala
index 2574f2ef99..2f4ad96e9e 100644
--- a/src/library/scala/xml/Comment.scala
+++ b/src/library/scala/xml/Comment.scala
@@ -11,8 +11,8 @@
package scala.xml
+
import compat.StringBuilder
-import compat.Platform.IllegalArgumentException
/** an XML node for comments.
*
diff --git a/src/library/scala/xml/Elem.scala b/src/library/scala/xml/Elem.scala
index ae79835096..96b571c505 100644
--- a/src/library/scala/xml/Elem.scala
+++ b/src/library/scala/xml/Elem.scala
@@ -12,8 +12,6 @@
package scala.xml;
-import compat.Platform.IllegalArgumentException
-
/** The case class <code>Elem</code> extends the Node class,
* providing an immutable data object representing an XML element.
*
diff --git a/src/library/scala/xml/Group.scala b/src/library/scala/xml/Group.scala
index 9e98408e14..fb39e060f5 100644
--- a/src/library/scala/xml/Group.scala
+++ b/src/library/scala/xml/Group.scala
@@ -13,7 +13,6 @@ package scala.xml
import compat.StringBuilder
-import compat.Platform.UnsupportedOperationException
/** A hack to group XML nodes in one node for output.
*
diff --git a/src/library/scala/xml/NamespaceBinding.scala b/src/library/scala/xml/NamespaceBinding.scala
index f95ffbbf25..0a3f860803 100644
--- a/src/library/scala/xml/NamespaceBinding.scala
+++ b/src/library/scala/xml/NamespaceBinding.scala
@@ -12,8 +12,8 @@
package scala.xml
+import Predef.IllegalArgumentException
import compat.StringBuilder
-import compat.Platform.IllegalArgumentException
/** The class <code>NamespaceBinding</code> represents namespace bindings
* and scopes. The binding for the default namespace is treated as a null
diff --git a/src/library/scala/xml/PrefixedAttribute.scala b/src/library/scala/xml/PrefixedAttribute.scala
index 952e4474c0..96ba45c73c 100644
--- a/src/library/scala/xml/PrefixedAttribute.scala
+++ b/src/library/scala/xml/PrefixedAttribute.scala
@@ -12,7 +12,6 @@
package scala.xml
import compat.StringBuilder
-import compat.Platform.UnsupportedOperationException
/** prefixed attributes always have a non-null namespace.
* @param value the attribute value, which may not be null
diff --git a/src/library/scala/xml/ProcInstr.scala b/src/library/scala/xml/ProcInstr.scala
index daf4e7da12..a355bb3eb4 100644
--- a/src/library/scala/xml/ProcInstr.scala
+++ b/src/library/scala/xml/ProcInstr.scala
@@ -13,7 +13,6 @@ package scala.xml;
import compat.StringBuilder
-import compat.Platform.IllegalArgumentException
/** an XML node for processing instructions (PI)
*
diff --git a/src/library/scala/xml/Utility.scala b/src/library/scala/xml/Utility.scala
index 1041faa2aa..0072f120fa 100644
--- a/src/library/scala/xml/Utility.scala
+++ b/src/library/scala/xml/Utility.scala
@@ -67,7 +67,7 @@ object Utility extends AnyRef with parsing.TokenTests {
case "gt" => s.append('>')
case "amp" => s.append('&')
case "quot" => s.append('"')
- case "apos" => s.append(''')
+ case "apos" => s.append('\'')
case _ => null
}
@@ -426,20 +426,20 @@ object Utility extends AnyRef with parsing.TokenTests {
while (ch() != ';') {
ch() match {
case '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' =>
- i = i * base + Character.digit(ch(), base)
+ i = i * base + ch().asDigit
case 'a' | 'b' | 'c' | 'd' | 'e' | 'f'
| 'A' | 'B' | 'C' | 'D' | 'E' | 'F' =>
if (! hex)
reportSyntaxError("hex char not allowed in decimal char ref\n" +
"Did you mean to write &#x ?")
else
- i = i * base + Character.digit(ch(), base)
+ i = i * base + ch().asDigit
case _ =>
reportSyntaxError("character '" + ch() + " not allowed in char ref\n")
}
nextch()
}
- String.valueOf(i.asInstanceOf[char])
+ i.asInstanceOf[char].toString()
}
}
diff --git a/src/library/scala/xml/dtd/Decl.scala b/src/library/scala/xml/dtd/Decl.scala
index 5413c9d884..3a000baac5 100644
--- a/src/library/scala/xml/dtd/Decl.scala
+++ b/src/library/scala/xml/dtd/Decl.scala
@@ -13,7 +13,6 @@ package scala.xml.dtd;
import compat.StringBuilder
-import compat.Platform.IllegalArgumentException
abstract class Decl;
diff --git a/src/library/scala/xml/dtd/DocType.scala b/src/library/scala/xml/dtd/DocType.scala
index a292f715bd..e31f43990f 100644
--- a/src/library/scala/xml/dtd/DocType.scala
+++ b/src/library/scala/xml/dtd/DocType.scala
@@ -12,8 +12,6 @@
package scala.xml.dtd;
-import compat.Platform.IllegalArgumentException
-
/** an XML node for document type declaration
*
* @author Burak Emir
diff --git a/src/library/scala/xml/dtd/ExternalID.scala b/src/library/scala/xml/dtd/ExternalID.scala
index c6fba94e48..6fa5d4823d 100644
--- a/src/library/scala/xml/dtd/ExternalID.scala
+++ b/src/library/scala/xml/dtd/ExternalID.scala
@@ -13,7 +13,6 @@ package scala.xml.dtd;
import compat.StringBuilder
-import compat.Platform.IllegalArgumentException
/** an ExternalIDs - either PublicID or SystemID
*
diff --git a/src/library/scala/xml/parsing/FactoryAdapter.scala b/src/library/scala/xml/parsing/FactoryAdapter.scala
index 867cbc8fb6..b8eff87251 100644
--- a/src/library/scala/xml/parsing/FactoryAdapter.scala
+++ b/src/library/scala/xml/parsing/FactoryAdapter.scala
@@ -13,6 +13,7 @@ package scala.xml.parsing
import java.io._
import scala.collection.mutable.{HashMap,Stack}
+import compat.StringBuilder
import org.xml.sax.Attributes
import org.xml.sax.ContentHandler
@@ -38,7 +39,7 @@ import javax.xml.parsers.SAXParser
*/
abstract class FactoryAdapter extends DefaultHandler() {
- val buffer = new StringBuffer()
+ val buffer = new StringBuilder()
val attribStack = new Stack[MetaData]
val hStack = new Stack[Node] // [ element ] contains siblings
val tagStack = new Stack[String]
@@ -87,7 +88,7 @@ abstract class FactoryAdapter extends DefaultHandler() {
var i: Int = offset
var ws = false
while (i < offset + length) {
- if (Character.isWhitespace(ch(i))) {
+ if (ch(i).isWhitespace) {
if (!ws) {
buffer.append(' ')
ws = true
@@ -235,27 +236,28 @@ abstract class FactoryAdapter extends DefaultHandler() {
//
/** Prints the error message */
- protected def printError(errtype: String, ex: SAXParseException): Unit = {
- System.err.print("[")
- System.err.print(errtype)
- System.err.print("] ")
+ protected def printError(errtype: String, ex: SAXParseException): Unit =
+ Console.withOut(Console.err) {
+ Console.print("[")
+ Console.print(errtype)
+ Console.print("] ")
var systemId = ex.getSystemId()
if (systemId != null) {
val index = systemId.lastIndexOf('/'.asInstanceOf[Int])
if (index != -1)
systemId = systemId.substring(index + 1)
- //System.err.print(systemId)
+ //Console.print(systemId)
}
- System.err.print(':')
- System.err.print(ex.getLineNumber())
- System.err.print(':')
- System.err.print(ex.getColumnNumber())
- System.err.print(": ")
- System.err.print(ex.getMessage())
- System.err.println()
- System.err.flush()
+ Console.print(':')
+ Console.print(ex.getLineNumber())
+ Console.print(':')
+ Console.print(ex.getColumnNumber())
+ Console.print(": ")
+ Console.print(ex.getMessage())
+ Console.println
+ Console.flush
}
var rootElem: Node = null:Node
@@ -276,13 +278,13 @@ abstract class FactoryAdapter extends DefaultHandler() {
f.newSAXParser()
} catch {
case e: Exception =>
- System.err.println("error: Unable to instantiate parser")
+ Console.err.println("error: Unable to instantiate parser")
exit(1)
}
// parse file
//try {
- //System.err.println("[parsing \"" + source + "\"]");
+ //Console.err.println("[parsing \"" + source + "\"]");
scopeStack.push(TopScope)
parser.parse(source, this)
scopeStack.pop
@@ -292,7 +294,7 @@ abstract class FactoryAdapter extends DefaultHandler() {
// ignore
}
case ( e:Exception ) => {
- System.err.println("error: Parse error occurred - " + e.getMessage());
+ Console.err.println("error: Parse error occurred - " + e.getMessage());
if (e.isInstanceOf[ SAXException ]) {
(e.asInstanceOf[ SAXException ])
.getException()
@@ -303,7 +305,7 @@ abstract class FactoryAdapter extends DefaultHandler() {
}
} // catch
*/
- //System.err.println("[FactoryAdapter: total #elements = "+elemCount+"]");
+ //Console.err.println("[FactoryAdapter: total #elements = "+elemCount+"]");
rootElem
} // loadXML
diff --git a/src/library/scala/xml/pull/XMLEventReader.scala b/src/library/scala/xml/pull/XMLEventReader.scala
index a8888a8b86..b89bdb764d 100644
--- a/src/library/scala/xml/pull/XMLEventReader.scala
+++ b/src/library/scala/xml/pull/XMLEventReader.scala
@@ -11,6 +11,9 @@
package scala.xml.pull
+
+import java.lang.{Runnable, Thread}
+
import scala.io.Source
import scala.xml.parsing.{MarkupParser, MarkupHandler,ExternalSources}
diff --git a/src/library/scala/xml/transform/BasicTransformer.scala b/src/library/scala/xml/transform/BasicTransformer.scala
index 4dab95b6f2..8364e498d4 100644
--- a/src/library/scala/xml/transform/BasicTransformer.scala
+++ b/src/library/scala/xml/transform/BasicTransformer.scala
@@ -12,8 +12,6 @@
package scala.xml.transform
-import compat.Platform.UnsupportedOperationException
-
/** A class for XML transformations.
*
* @author Burak Emir
diff --git a/test/files/jvm/JavaInteraction.scala b/test/files/jvm/JavaInteraction.scala
index ee86e83dbd..2728a5aee4 100644
--- a/test/files/jvm/JavaInteraction.scala
+++ b/test/files/jvm/JavaInteraction.scala
@@ -14,10 +14,10 @@ class ColoredPoint(x: Int, y: Int, c_ : Color) extends Point(x, y) {
object Test {
def main(args: Array[String]): Unit = {
val p = new ColoredPoint(5, 7, Color.RED);
- System.out.println("p.x = " + p.x);
- System.out.println("p.c = " + p.c);
- System.out.println("p.getX() = " + p.getX());
- System.out.println("p.getC() = " + p.getC());
+ Console.println("p.x = " + p.x);
+ Console.println("p.c = " + p.c);
+ Console.println("p.getX() = " + p.getX());
+ Console.println("p.getC() = " + p.getC());
}
}
diff --git a/test/files/jvm/bigints.scala b/test/files/jvm/bigints.scala
index f1328274c6..627c81cbfc 100644
--- a/test/files/jvm/bigints.scala
+++ b/test/files/jvm/bigints.scala
@@ -4,11 +4,10 @@ object Test extends Application {
val x: BigInt = 1
val y = x + 1
val z = 1 + y
- System.out.println(z)
- System.out.println(z <= 3)
- System.out.println(3 < z)
- System.out.println(z == 3)
- System.out.println(3 == z)
+ Console.println(z)
+ Console.println(z <= 3)
+ Console.println(3 < z)
+ Console.println(z == 3)
+ Console.println(3 == z)
}
-
diff --git a/test/files/jvm5/attributes.scala b/test/files/jvm5/attributes.scala
index 051355a947..be949e25a9 100644
--- a/test/files/jvm5/attributes.scala
+++ b/test/files/jvm5/attributes.scala
@@ -1,3 +1,5 @@
+import java.lang.Deprecated
+
object Test1 {
class Foo {
[remote]
diff --git a/test/files/jvm5/bug676.scala b/test/files/jvm5/bug676.scala
index 2ca8083ceb..bcd27e4e21 100644
--- a/test/files/jvm5/bug676.scala
+++ b/test/files/jvm5/bug676.scala
@@ -3,6 +3,6 @@ object Test {
import java.lang.annotation.Retention;
val c = classOf[Retention]
val r: Retention = c.getAnnotation(c).asInstanceOf[Retention];
- System.out.println(r.value)
+ Console.println(r.value)
}
}
diff --git a/test/files/jvm5/bug680.scala b/test/files/jvm5/bug680.scala
index d2c1744325..31c359ed8c 100755..100644
--- a/test/files/jvm5/bug680.scala
+++ b/test/files/jvm5/bug680.scala
@@ -1,6 +1,6 @@
object Test {
def main(args:Array[String]): unit = {
- val sb = new StringBuilder() // use Java 1.5
+ val sb = new java.lang.StringBuilder() // use Java 1.5
sb.setLength(0)
}
}
diff --git a/test/files/neg/bug421.scala b/test/files/neg/bug421.scala
index 3e014b7500..43f6c9dafd 100644
--- a/test/files/neg/bug421.scala
+++ b/test/files/neg/bug421.scala
@@ -1,5 +1,5 @@
object foo {
- case class Bar(a:String, b:Object, c:String*);
+ case class Bar(a:String, b:AnyRef, c:String*);
Bar("foo","meets","bar") match {
case Bar("foo",_*) => error("huh?");
diff --git a/test/files/neg/bug500.scala b/test/files/neg/bug500.scala
index d572cd8b80..d843d71f07 100644
--- a/test/files/neg/bug500.scala
+++ b/test/files/neg/bug500.scala
@@ -14,7 +14,7 @@ object Test {
def main(args: Array[String]): Unit = {
try {
val i: Int = Magic.magic("42");
- System.out.println(i);
+ Console.println(i);
} catch {
case ex: Throwable => ex.printStackTrace()
}
diff --git a/test/files/neg/bug501.scala b/test/files/neg/bug501.scala
index 454344974a..437ab8f21e 100644
--- a/test/files/neg/bug501.scala
+++ b/test/files/neg/bug501.scala
@@ -13,6 +13,6 @@ object Magic {
object Test {
def main(args: Array[String]): Unit = {
val i: Int = Magic.magic("42");
- System.out.println(i);
+ Console.println(i);
}
}
diff --git a/test/files/neg/bug692.check b/test/files/neg/bug692.check
index afd2639123..2cd761b568 100644
--- a/test/files/neg/bug692.check
+++ b/test/files/neg/bug692.check
@@ -2,7 +2,7 @@ bug692.scala:3 error: not found: type T
trait Type[T0] extends Type0[T];
^
bug692.scala:10 error: class Foo takes type parameters
- case class FooType extends ClassType[Foo,Object](ObjectType);
+ case class FooType extends ClassType[Foo,AnyRef](ObjectType);
^
bug692.scala:13 error: class Foo takes type parameters
case class BarType[T3 <: Foo](tpeT : RefType[T3]) extends ClassType[Bar[T3],Foo](FooType);
diff --git a/test/files/neg/bug692.scala b/test/files/neg/bug692.scala
index 50976f1121..dc5a9040a0 100755
--- a/test/files/neg/bug692.scala
+++ b/test/files/neg/bug692.scala
@@ -1,13 +1,13 @@
abstract class test3 {
trait Type0[+T0];
trait Type[T0] extends Type0[T];
- trait ClassType0[+C <: Object] extends Type0[C];
- abstract class RefType[C <: Object] extends Type[C];
- case class ObjectType extends RefType[Object];
- abstract class ClassType[C <: Z, Z <: Object](zuper : RefType[Z]) extends RefType[C];
+ trait ClassType0[+C <: AnyRef] extends Type0[C];
+ abstract class RefType[C <: AnyRef] extends Type[C];
+ case class ObjectType extends RefType[AnyRef];
+ abstract class ClassType[C <: Z, Z <: AnyRef](zuper : RefType[Z]) extends RefType[C];
- case class FooType extends ClassType[Foo,Object](ObjectType);
+ case class FooType extends ClassType[Foo,AnyRef](ObjectType);
implicit def typeOfFoo = FooType();
case class BarType[T3 <: Foo](tpeT : RefType[T3]) extends ClassType[Bar[T3],Foo](FooType);
@@ -15,6 +15,6 @@ abstract class test3 {
BarType(elem);
- class Foo[A <: Object];
+ class Foo[A <: AnyRef];
class Bar[A <: Foo](implicit tpeA : Type[A]) extends Foo;
}
diff --git a/test/files/neg/bug779.scala b/test/files/neg/bug779.scala
index 9179fab4f8..cc92f9062a 100644
--- a/test/files/neg/bug779.scala
+++ b/test/files/neg/bug779.scala
@@ -1,6 +1,6 @@
abstract class Foo {
trait Node {
- def ast: Object = null
+ def ast: AnyRef = null
}
trait Something extends Node {
override def ast = return null
diff --git a/test/files/neg/constrs.check b/test/files/neg/constrs.check
index 4da2b16b3d..eae90b0163 100644
--- a/test/files/neg/constrs.check
+++ b/test/files/neg/constrs.check
@@ -1,8 +1,8 @@
constrs.scala:6 error: type T is not a member of object test
- def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); System.out.println(x) }
+ def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); Console.println(x) }
^
constrs.scala:6 error: value u is not a member of object test
- def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); System.out.println(x) }
+ def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); Console.println(x) }
^
constrs.scala:10 error: called constructor must precede calling constructor
def this() = this("abc")
diff --git a/test/files/neg/constrs.scala b/test/files/neg/constrs.scala
index 5c4ac071e8..e425a25120 100644
--- a/test/files/neg/constrs.scala
+++ b/test/files/neg/constrs.scala
@@ -3,7 +3,7 @@ object test {
abstract class Test(x: int) {
type T;
val u = x;
- def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); System.out.println(x) }
+ def this(y: int)(z: int)(t: this.T) = { this(this.u + y + z); Console.println(x) }
}
class Foo(x: int) {
diff --git a/test/files/neg/forward.scala b/test/files/neg/forward.scala
index 5e21e4c1fe..b7f7a50583 100644
--- a/test/files/neg/forward.scala
+++ b/test/files/neg/forward.scala
@@ -18,7 +18,7 @@ object Test {
}
{
def f: int = g;
- System.out.println("foo");
+ Console.println("foo");
def g: int = f;
}
}
diff --git a/test/files/neg/viewtest.scala b/test/files/neg/viewtest.scala
index 5a8abdccfd..da26ccbfad 100644
--- a/test/files/neg/viewtest.scala
+++ b/test/files/neg/viewtest.scala
@@ -96,21 +96,21 @@ object Test {
for (val s <- args) {
t = t insert s
}
- System.out.println(t.elements)
+ Console.println(t.elements)
}
{
var t: Tree[Str] = Empty
for (val s <- args) {
t = t insert Str(s)
}
- System.out.println(t.elements)
+ Console.println(t.elements)
}
{
var t: Tree[List[char]] = Empty
for (val s <- args) {
t = t insert toCharList(s)
}
- System.out.println(t.elements)
+ Console.println(t.elements)
}
}
}
diff --git a/test/files/pos/Z.scala b/test/files/pos/Z.scala
index c1367e46b9..6a8e97ed1a 100644
--- a/test/files/pos/Z.scala
+++ b/test/files/pos/Z.scala
@@ -5,6 +5,6 @@ trait X {
object test {
def g(x: X) = x.elem;
- def f(x: Object) = x.toString();
+ def f(x: AnyRef) = x.toString();
}
diff --git a/test/files/pos/abstract.scala b/test/files/pos/abstract.scala
index 533f996931..2ac06e59bd 100644
--- a/test/files/pos/abstract.scala
+++ b/test/files/pos/abstract.scala
@@ -5,5 +5,5 @@ abstract class C() {
class D() extends C() {
type t = Int;
- System.out.println(copy(1));
+ Console.println(copy(1));
}
diff --git a/test/files/pos/bug082.scala b/test/files/pos/bug082.scala
index 594c9fdc86..a2a36bcd65 100644
--- a/test/files/pos/bug082.scala
+++ b/test/files/pos/bug082.scala
@@ -13,6 +13,6 @@ object Main {
def min(xs: List[Int]) = min0((x: Int, y: Int) => x < y, xs);
def main(args: Array[String]) =
- System.out.println(min(List()));
+ Console.println(min(List()));
}
diff --git a/test/files/pos/bug1.scala b/test/files/pos/bug1.scala
deleted file mode 100644
index bdf33ef20d..0000000000
--- a/test/files/pos/bug1.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-object Exceptions {
-
- class CubeException(s: String) extends java.lang.RuntimeException(s);
-
- def main(args: Array[String]) =
- System.out.println(new CubeException("test"));
-
-}
diff --git a/test/files/pos/bug115.scala b/test/files/pos/bug115.scala
index ad6cb44497..e361f06370 100644
--- a/test/files/pos/bug115.scala
+++ b/test/files/pos/bug115.scala
@@ -1,5 +1,5 @@
class S[A](f: A => A, x: A) {
- System.out.println(f(x));
+ Console.println(f(x));
}
class T[B](f: B => B, y: B) extends S((x: B) => f(x), y) {
}
diff --git a/test/files/pos/bug159.scala b/test/files/pos/bug159.scala
index ef6eba5255..341cf07085 100644
--- a/test/files/pos/bug159.scala
+++ b/test/files/pos/bug159.scala
@@ -1,8 +1,10 @@
+import compat.StringBuilder
+
object foo {
// the problem seems to appear only
// if "val _" is in the body of a case
- def cooked( ckd:StringBuffer ):Unit =
+ def cooked( ckd:StringBuilder ):Unit =
'a' match {
case '-' =>
val _ = ckd.append( '_' );
diff --git a/test/files/pos/bug17.scala b/test/files/pos/bug17.scala
index a83eefe972..d2bcda08d4 100644
--- a/test/files/pos/bug17.scala
+++ b/test/files/pos/bug17.scala
@@ -9,7 +9,7 @@ abstract class Constraint(q: Quantity) {
}
class Adder(q: Quantity) extends Constraint(q) {
- def newValue = System.out.println(q.getValue);
+ def newValue = Console.println(q.getValue);
}
object Main {
diff --git a/test/files/pos/bug193.scala b/test/files/pos/bug193.scala
index 9b1c82f45f..e055f8a324 100644
--- a/test/files/pos/bug193.scala
+++ b/test/files/pos/bug193.scala
@@ -18,7 +18,7 @@ trait Test {
()
}
- def fun_o0(x: Object): Unit = {
+ def fun_o0(x: AnyRef): Unit = {
(x: Any) == 0;
(x ) == 0;
(x: Any) != 0;
@@ -34,7 +34,7 @@ trait Test {
()
}
- def fun_0o(y: Object): Unit = {
+ def fun_0o(y: AnyRef): Unit = {
(0: Any) == y;
(0 ) == y;
(0: Any) != y;
@@ -49,21 +49,21 @@ trait Test {
(x ) != y;
()
}
- def fun_io(x: Int, y: Object): Unit = {
+ def fun_io(x: Int, y: AnyRef): Unit = {
(x: Any) == y;
(x ) == y;
(x: Any) != y;
(x ) != y;
()
}
- def fun_oi(x: Object, y: Int): Unit = {
+ def fun_oi(x: AnyRef, y: Int): Unit = {
(x: Any) == y;
(x ) == y;
(x: Any) != y;
(x ) != y;
()
}
- def fun_oo(x: Object, y: Object): Unit = {
+ def fun_oo(x: AnyRef, y: AnyRef): Unit = {
(x: Any) == y;
(x ) == y;
(x: Any) != y;
diff --git a/test/files/pos/bug20.scala b/test/files/pos/bug20.scala
index bdf33ef20d..4f1e5b1732 100644
--- a/test/files/pos/bug20.scala
+++ b/test/files/pos/bug20.scala
@@ -1,8 +1,8 @@
object Exceptions {
- class CubeException(s: String) extends java.lang.RuntimeException(s);
+ class CubeException(s: String) extends RuntimeException(s);
def main(args: Array[String]) =
- System.out.println(new CubeException("test"));
+ Console.println(new CubeException("test"));
}
diff --git a/test/files/pos/bug211.scala b/test/files/pos/bug211.scala
index 895fb9a8f1..424a396ea1 100644
--- a/test/files/pos/bug211.scala
+++ b/test/files/pos/bug211.scala
@@ -3,6 +3,6 @@ trait B;
class Foo requires (A with B) extends A with B;
object Test extends Application {
new Foo();
- System.out.println("bug211 completed");
+ Console.println("bug211 completed");
}
diff --git a/test/files/pos/bug267.scala b/test/files/pos/bug267.scala
index 619ba82e94..66add083f7 100644
--- a/test/files/pos/bug267.scala
+++ b/test/files/pos/bug267.scala
@@ -20,7 +20,7 @@ trait Base {
object testBase extends Application with Base {
type exp = Exp;
val term = new Num(2);
- System.out.println(term.eval);
+ Console.println(term.eval);
}
/** Data extension: An extension of `Base' with `Plus' expressions
diff --git a/test/files/pos/bug31.scala b/test/files/pos/bug31.scala
index 92f33bfd02..aa787ca794 100644
--- a/test/files/pos/bug31.scala
+++ b/test/files/pos/bug31.scala
@@ -23,7 +23,7 @@ object Main {
def main(args: Array[String]) = {
val s = List(1, 2);
- System.out.println(arb(s))
+ Console.println(arb(s))
}
}
diff --git a/test/files/pos/bug32.scala b/test/files/pos/bug32.scala
index 4354727d1a..7f901a9ac1 100644
--- a/test/files/pos/bug32.scala
+++ b/test/files/pos/bug32.scala
@@ -6,9 +6,9 @@ class PromptStream(s: OutputStream) extends PrintStream(s) {
object Main {
- val out = new PromptStream(System.out);
+ val out = new PromptStream(java.lang.System.out);
- System.setOut(out);
+ java.lang.System.setOut(out);
def main(args: Array[String]) =
//out.println("hello world");
diff --git a/test/files/pos/bug360.scala b/test/files/pos/bug360.scala
index 9c5f243365..0860eb8ee3 100644
--- a/test/files/pos/bug360.scala
+++ b/test/files/pos/bug360.scala
@@ -5,7 +5,7 @@ abstract class Bug360A requires Bug360C {
}
trait Bug360B requires Bug360C {
object d {
- System.out.println(f);
+ Console.println(f);
}
}
abstract class Bug360C extends Bug360A with Bug360B;
diff --git a/test/files/pos/bug374.scala b/test/files/pos/bug374.scala
index 9a452cbb79..31a98871a8 100644
--- a/test/files/pos/bug374.scala
+++ b/test/files/pos/bug374.scala
@@ -5,7 +5,7 @@ object tokens extends Enumeration {
val NAME = Value("name");
}
-object test extends Object with Application {
+object test extends AnyRef with Application {
import tokens._;
val reserved = new scala.collection.mutable.HashMap[String, Token]();
diff --git a/test/files/pos/bug49.scala b/test/files/pos/bug49.scala
index 913ce06e00..dd86642263 100644
--- a/test/files/pos/bug49.scala
+++ b/test/files/pos/bug49.scala
@@ -1,3 +1,3 @@
-class C1(x: Object) {};
+class C1(x: AnyRef) {};
-class C2 extends C1({ class A extends Object {}; (new A) : Object }) {};
+class C2 extends C1({ class A extends AnyRef {}; (new A) : AnyRef }) {};
diff --git a/test/files/pos/bug516.scala b/test/files/pos/bug516.scala
index 38aa4f70a6..67e1799f28 100644
--- a/test/files/pos/bug516.scala
+++ b/test/files/pos/bug516.scala
@@ -5,8 +5,8 @@ class Members;
object subscriber extends Subscriber[Message[String] with Undoable, Members] {
def notify(pub: Members, event: Message[String] with Undoable): Unit =
(event: Message[String]) match {
- case Include(elem) => System.err.println("ADD: " + elem);
- case Remove(elem) => System.err.println("REM: " + elem);
+ case Include(elem) => Console.println("ADD: " + elem);
+ case Remove(elem) => Console.println("REM: " + elem);
//case i : Include[HasTree] with Undoable =>
//case r : Remove [HasTree] with Undoable =>
}
diff --git a/test/files/pos/constfold.scala b/test/files/pos/constfold.scala
index 2eb31b4086..0082b8cd5f 100644
--- a/test/files/pos/constfold.scala
+++ b/test/files/pos/constfold.scala
@@ -7,8 +7,8 @@ object A {
object Test extends Application {
- System.out.println(A.x);
- System.out.println(A.y);
- System.out.println(A.z);
- System.out.println(A.s);
+ Console.println(A.x);
+ Console.println(A.y);
+ Console.println(A.z);
+ Console.println(A.s);
}
diff --git a/test/files/pos/exceptions.scala b/test/files/pos/exceptions.scala
index 819368244d..f71d215a23 100644
--- a/test/files/pos/exceptions.scala
+++ b/test/files/pos/exceptions.scala
@@ -7,14 +7,14 @@ object Test {
def main(args: Array[String]): Unit = {
try {
try {
- System.out.println("hi!");
+ Console.println("hi!");
error("xx");
} finally {
- System.out.println("ho!")
+ Console.println("ho!")
}
} catch {
- case ex: IOException => System.out.println("io exception!");
- case ex => System.out.println(ex);
+ case ex: IOException => Console.println("io exception!");
+ case ex => Console.println(ex);
}
}
}
diff --git a/test/files/pos/functions.scala b/test/files/pos/functions.scala
index 3a7ce16f37..697589fd5d 100644
--- a/test/files/pos/functions.scala
+++ b/test/files/pos/functions.scala
@@ -6,7 +6,7 @@ object Test {
val x = 1;
Process.receive {
case "abc" if x == 2 =>
- System.out.println("hi!")
+ Console.println("hi!")
}
}
}
diff --git a/test/files/pos/gui.scala b/test/files/pos/gui.scala
index b40759fb01..54ecbfa719 100644
--- a/test/files/pos/gui.scala
+++ b/test/files/pos/gui.scala
@@ -21,9 +21,9 @@ trait Screen {
object DummyScreen extends Screen {
def drawRect(r: Geom.Rectangle, c: Color): unit =
- System.out.println("draw " + r + " with " + c);
+ Console.println("draw " + r + " with " + c);
def fillRect(r: Geom.Rectangle, c: Color): unit =
- System.out.println("fill " + r + " with " + c);
+ Console.println("fill " + r + " with " + c);
}
object GUI {
@@ -35,7 +35,7 @@ object GUI {
trait Glyph {
def getRect: Geom.Rectangle;
def setLoc(p: Geom.Point): unit;
- def draw() = System.out.println("draw " + this);
+ def draw() = Console.println("draw " + this);
}
class Label(scr: Screen, p: Geom.Point, name: String) extends Glyph {
@@ -71,7 +71,7 @@ object GUI {
def enable(b: boolean): this.type = { enabled = b; draw(); this }
def getGlyph = label;
final def mouseDown(p: Geom.Point): unit =
- if (enabled) doit() else System.out.println("button is disabled");
+ if (enabled) doit() else Console.println("button is disabled");
/* deferred method to be specified by client */
def doit(): unit;
@@ -81,7 +81,7 @@ object GUI {
object GUIClient {
class Application {
- def quit() = System.out.println("application exited");
+ def quit() = Console.println("application exited");
}
class QuitButton (scr: Screen, p: Geom.Point, name: String, a: Application)
diff --git a/test/files/pos/localmodules.scala b/test/files/pos/localmodules.scala
index 8ed34f455a..3e1600842c 100644
--- a/test/files/pos/localmodules.scala
+++ b/test/files/pos/localmodules.scala
@@ -7,7 +7,7 @@ object main {
object b {
trait c {}
- def foo(x: c): c = { System.out.println("foo(" + x + ")"); x }
+ def foo(x: c): c = { Console.println("foo(" + x + ")"); x }
}
@@ -17,6 +17,6 @@ object main {
def main(args: Array[String]) = {
val aa = new a;
val xx: aa.b.c = null;
- System.out.println(aa.bar(xx));
+ Console.println(aa.bar(xx));
}
}
diff --git a/test/files/pos/matthias4.scala b/test/files/pos/matthias4.scala
index c6ce79d682..18599ae714 100644
--- a/test/files/pos/matthias4.scala
+++ b/test/files/pos/matthias4.scala
@@ -20,7 +20,7 @@ object C requires B {
}
*/
-trait _a extends Object with _b {
+trait _a extends AnyRef with _b {
val a: _a;
val A: A;
type A <: a.AObject;
@@ -29,7 +29,7 @@ trait _a extends Object with _b {
def setX(x: B.X): Unit;
}
}
-trait a123 extends Object with _a with _b {
+trait a123 extends AnyRef with _a with _b {
val a: this.type = this;
val A: A = new A();
class A() extends AObject {
@@ -48,7 +48,7 @@ trait _b {
def setX(x: X): Unit;
}
}
-abstract class b() extends Object with _b {
+abstract class b() extends AnyRef with _b {
val b: this.type = this;
val B: B = new B();
class B() extends BObject {
@@ -64,7 +64,7 @@ trait _m {
type M <: m.MObject;
trait MObject {}
}
-abstract class m() extends Object with _m with _b {
+abstract class m() extends AnyRef with _m with _b {
val m: this.type = this;
val M: M = new M();
class M() extends MObject with a123 with Linker {
diff --git a/test/files/pos/michel2.scala b/test/files/pos/michel2.scala
index e6976b0f40..914c1b27ab 100644
--- a/test/files/pos/michel2.scala
+++ b/test/files/pos/michel2.scala
@@ -1,15 +1,15 @@
object Test {
- trait A extends Object {
+ trait A extends AnyRef {
def f : Int = 1
}
- class B extends Object with A {
+ class B extends AnyRef with A {
override def f : Int = super[A].f
}
def main(args: Array[String]) =
- System.out.println(new B().f);
+ Console.println(new B().f);
}
diff --git a/test/files/pos/michel5.scala b/test/files/pos/michel5.scala
index 345ae04d9d..34832c00ca 100644
--- a/test/files/pos/michel5.scala
+++ b/test/files/pos/michel5.scala
@@ -1,5 +1,5 @@
trait A[Ta] { }
-class B() extends Object with A[Int] {
+class B() extends AnyRef with A[Int] {
val x : Int = 2
-} \ No newline at end of file
+}
diff --git a/test/files/pos/override.scala b/test/files/pos/override.scala
index 9f068b8ecd..6312564f4d 100644
--- a/test/files/pos/override.scala
+++ b/test/files/pos/override.scala
@@ -1,13 +1,13 @@
-trait A extends Object {
+trait A extends AnyRef {
def f = 1;
val x: A;
}
-trait B extends Object {
+trait B extends AnyRef {
def f = 2;
}
-trait C extends Object with A with B {
+trait C extends AnyRef with A with B {
override def f = super[B].f;
val a: A;
val x: a.type = a;
diff --git a/test/files/pos/rebind.scala b/test/files/pos/rebind.scala
index 3b7b27ac34..61ff0c223e 100644
--- a/test/files/pos/rebind.scala
+++ b/test/files/pos/rebind.scala
@@ -9,5 +9,5 @@ trait Bar {
def foo: Inner = foo;
}
class Test extends Foo with Bar {
- System.out.println(foo.inner);
+ Console.println(foo.inner);
}
diff --git a/test/files/pos/seqtest2.scala b/test/files/pos/seqtest2.scala
index 903b270c95..239b1b5816 100644
--- a/test/files/pos/seqtest2.scala
+++ b/test/files/pos/seqtest2.scala
@@ -3,7 +3,7 @@ object test {
val b = List(1, 2, 3);
def main(args: Array[String]) =
- System.out.println(
+ Console.println(
b match {
case List(1, 2, 3) => true;
case _ => false;
diff --git a/test/files/pos/testcast.scala b/test/files/pos/testcast.scala
index 631b2c922b..2a78b5f2a2 100644
--- a/test/files/pos/testcast.scala
+++ b/test/files/pos/testcast.scala
@@ -22,5 +22,5 @@ object Test {
val b: B = null;
- System.out.println(b.bar);
+ Console.println(b.bar);
}
diff --git a/test/files/pos/thistype.scala b/test/files/pos/thistype.scala
index 8c0ba209be..c8f7ec9678 100644
--- a/test/files/pos/thistype.scala
+++ b/test/files/pos/thistype.scala
@@ -1,11 +1,11 @@
object Test {
class Ctl {
- def enable: this.type = { System.out.println("enable"); this }
+ def enable: this.type = { Console.println("enable"); this }
}
class MouseCtl extends Ctl {
- def mouseDown(x: int, y: int): unit = { System.out.println("mouse down"); }
+ def mouseDown(x: int, y: int): unit = { Console.println("mouse down"); }
}
def main(args: Array[String]) =
diff --git a/test/files/pos/traits.scala b/test/files/pos/traits.scala
index d2c3f7c71b..1418757442 100644
--- a/test/files/pos/traits.scala
+++ b/test/files/pos/traits.scala
@@ -35,8 +35,6 @@ object Test {
val thickness = 2;
val color = 0;
}
- System.out.println(bcs1 == bcs1);
- System.out.println(bcs1 == bcs2)
+ Console.println(bcs1 == bcs1);
+ Console.println(bcs1 == bcs2)
}
-
-
diff --git a/test/files/pos/viewtest1.scala b/test/files/pos/viewtest1.scala
index 4019690961..da56afcc8b 100644
--- a/test/files/pos/viewtest1.scala
+++ b/test/files/pos/viewtest1.scala
@@ -37,6 +37,6 @@ object Test {
for (val s <- args) {
t = t insert s
}
- System.out.println(t.elements)
+ Console.println(t.elements)
}
}
diff --git a/test/files/pos/viewtest2.scala b/test/files/pos/viewtest2.scala
index 6a6ed96df7..c7c0408ef2 100644
--- a/test/files/pos/viewtest2.scala
+++ b/test/files/pos/viewtest2.scala
@@ -95,21 +95,21 @@ object Test {
for (val s <- args) {
t = t insert s
}
- System.out.println(t.elements)
+ Console.println(t.elements)
}
{
var t: Tree[Str] = Empty
for (val s <- args) {
t = t insert Str(s)
}
- System.out.println(t.elements)
+ Console.println(t.elements)
}
{
var t: Tree[List[char]] = Empty
for (val s <- args) {
t = t insert toCharList(s)
}
- System.out.println(t.elements)
+ Console.println(t.elements)
}
}
}
diff --git a/test/files/run/Course-2002-10.scala b/test/files/run/Course-2002-10.scala
index cfd4f02e99..258b6dc8fd 100644
--- a/test/files/run/Course-2002-10.scala
+++ b/test/files/run/Course-2002-10.scala
@@ -3,6 +3,8 @@
//############################################################################
// $Id$
+import compat.Math.{PI, log}
+
object M0 {
def addStream (s1: Stream[int], s2: Stream[int]): Stream[int] =
@@ -72,9 +74,9 @@ object M1 {
i = i + 1;
}
Console.print("pi = ");
- Console.print(str(Math.PI) + ", ");
- Console.print(str(Math.PI) + ", ");
- Console.print(str(Math.PI) + "\n");
+ Console.print(str(PI) + ", ");
+ Console.print(str(PI) + ", ");
+ Console.print(str(PI) + "\n");
Console.println;
i = 0;
while (i < 10) {
@@ -85,9 +87,9 @@ object M1 {
i = i + 1;
}
Console.print("ln = ");
- Console.print(str(Math.log(2)) + ", ");
- Console.print(str(Math.log(2)) + ", ");
- Console.print(str(Math.log(2)) + "\n");
+ Console.print(str(log(2)) + ", ");
+ Console.print(str(log(2)) + ", ");
+ Console.print(str(log(2)) + "\n");
Console.println;
}
}
diff --git a/test/files/run/bugs.scala b/test/files/run/bugs.scala
index 6d0075332d..0f77bd5f34 100644
--- a/test/files/run/bugs.scala
+++ b/test/files/run/bugs.scala
@@ -169,7 +169,7 @@ trait Bug176A {
def test = foo(bar);
}
trait Bug176B {
- type S <: Object;
+ type S <: AnyRef;
type T = S;
def foo(x: S): Int;
def bar: S;
@@ -215,13 +215,13 @@ object Bug213Test {
try {
foo.testAll;
} catch {
- case e: compat.Platform.ClassCastException =>
+ case e: ClassCastException =>
Console.println("Cannot cast unit to Nothing");
}
try {
foo.testAllRef;
} catch {
- case e: compat.Platform.ClassCastException =>
+ case e: ClassCastException =>
Console.println("Cannot cast empty string to Null");
}
()
@@ -445,7 +445,7 @@ object Test {
test;
} catch {
case exception => {
- val curr: String = compat.Platform.currentThread.toString();
+ val curr: String = currentThread.toString();
Console.print("Exception in thread \"" + curr + "\" " + exception);
Console.println;
errors = errors + 1;
diff --git a/test/files/run/caseclasses.scala b/test/files/run/caseclasses.scala
index 809bfb3511..7b9aa2e582 100644
--- a/test/files/run/caseclasses.scala
+++ b/test/files/run/caseclasses.scala
@@ -3,7 +3,6 @@ case class Foo(x: int)(y: int);
case class Bar;
object Test extends Application {
- import compat.Platform.IndexOutOfBoundsException
def fn[a,b](x: a => b) = x;
val f = fn(Foo(1))
diff --git a/test/files/run/lisp.scala b/test/files/run/lisp.scala
index bf895f2349..8a559bc813 100644
--- a/test/files/run/lisp.scala
+++ b/test/files/run/lisp.scala
@@ -240,7 +240,7 @@ object LispCaseClasses extends Lisp {
if (token == "(") parseList
else if (token == ")") error("unbalanced parentheses")
else if ('0' <= token.charAt(0) && token.charAt(0) <= '9')
- NUM(compat.Platform.parseInt(token))
+ NUM(token.toInt)
else if (token.charAt(0) == '\"' && token.charAt(token.length()-1)=='\"')
STR(token.substring(1,token.length() - 1))
else SYM(token)
@@ -432,8 +432,8 @@ object LispAny extends Lisp {
if (token == "(") parseList
else if (token == ")") error("unbalanced parentheses")
//else if (Character.isDigit(token.charAt(0)))
- else if (compat.Platform.isDigit(token.charAt(0)))
- compat.Platform.parseInt(token)
+ else if (token.charAt(0).isDigit)
+ token.toInt
else if (token.charAt(0) == '\"' && token.charAt(token.length()-1)=='\"')
token.substring(1,token.length() - 1)
else Symbol(token)
@@ -457,7 +457,7 @@ class LispUser(lisp: Lisp) {
def run = {
- Console.println(string2lisp("(lambda (x) (+ (* x x) 1))").asInstanceOf[Object]);
+ Console.println(string2lisp("(lambda (x) (+ (* x x) 1))").asInstanceOf[AnyRef]);
Console.println(lisp2string(string2lisp("(lambda (x) (+ (* x x) 1))")));
Console.println;
diff --git a/test/files/run/misc.scala b/test/files/run/misc.scala
index bff24ae0ee..7838328d4b 100644
--- a/test/files/run/misc.scala
+++ b/test/files/run/misc.scala
@@ -25,9 +25,9 @@ def id[X](x: X): X = x;
def apply[X](f: X => X, x: X): X = f(x);
-def id_obj(x: Object): Object = x;
+def id_obj(x: AnyRef): AnyRef = x;
-def apply_obj(f: Object => Object, x: Object): Object = f(x);
+def apply_obj(f: AnyRef => AnyRef, x: AnyRef): AnyRef = f(x);
def id_any(x: scala.Any): scala.Any = x;
diff --git a/test/files/script/fact.scala b/test/files/script/fact.scala
index 76d52b6910..d48dac6f0f 100644
--- a/test/files/script/fact.scala
+++ b/test/files/script/fact.scala
@@ -21,7 +21,7 @@ exec scala -nocompdaemon "$SOURCE" "$@"
!#
-val x = Integer.parseInt(argv(0))
+val x = argv(0).toInt
def fact(x: Int):Int =
if(x==0) 1