From 5f956146dbaeab36b834cd0a122aa138617b3cc9 Mon Sep 17 00:00:00 2001 From: buraq Date: Fri, 21 Jan 2005 16:08:41 +0000 Subject: little fixes --- config/list/scalac.lst | 22 +++++++---- sources/scala/concurrent/Process.scala | 30 +++++++-------- .../tools/scalac/transformer/TransMatch.scala | 4 +- sources/scala/tools/scalac/util/NewArray.scala | 45 +++++----------------- sources/scala/xml/Text.scala | 2 +- sources/scalac/util/Names.java | 2 + 6 files changed, 44 insertions(+), 61 deletions(-) diff --git a/config/list/scalac.lst b/config/list/scalac.lst index 284b884da1..d3b05717c7 100644 --- a/config/list/scalac.lst +++ b/config/list/scalac.lst @@ -112,8 +112,8 @@ ../../../scalac/transformer/TailCallPhase.java ../../../scalac/transformer/TypesAsValuesPhase.java -../../../scalac/transformer/matching/AlgebraicMatcher.java -../../../scalac/transformer/matching/Autom2Scala.java +#../../../scalac/transformer/matching/AlgebraicMatcher.java +#../../../scalac/transformer/matching/Autom2Scala.java ../../../scalac/transformer/matching/BindingBerrySethi.java ../../../scalac/transformer/matching/BerrySethi.java ../../../scalac/transformer/matching/CaseEnv.java @@ -122,8 +122,8 @@ ../../../scalac/transformer/matching/DetWordAutom.java ../../../scalac/transformer/matching/FreshVariableTraverser.java ../../../scalac/transformer/matching/Label.java -../../../scalac/transformer/matching/TracerInScala.java -../../../scalac/transformer/matching/LeftTracerInScala.java +#../../../scalac/transformer/matching/TracerInScala.java +#../../../scalac/transformer/matching/LeftTracerInScala.java ../../../scalac/transformer/matching/NondetWordAutom.java ../../../scalac/transformer/matching/NoSeqVariableTraverser.java ../../../scalac/transformer/matching/PartialMatcher.java @@ -131,11 +131,11 @@ ../../../scalac/transformer/matching/PatternNode.java ../../../scalac/transformer/matching/PatternNodeCreator.java ../../../scalac/transformer/matching/PatternTool.java -../../../scalac/transformer/matching/RightTracerInScala.java -../../../scalac/transformer/matching/SequenceMatcher.java +#../../../scalac/transformer/matching/RightTracerInScala.java +#../../../scalac/transformer/matching/SequenceMatcher.java ../../../scalac/transformer/matching/StateSetComparator.java ../../../scalac/transformer/matching/VariableTraverser.java -../../../scalac/transformer/matching/WordAutomInScala.java +#../../../scalac/transformer/matching/WordAutomInScala.java ../../../scalac/typechecker/AnalyzerPhase.java ../../../scalac/typechecker/Infer.java @@ -182,6 +182,14 @@ transformer/TransMatch.scala transformer/TransMatchPhase.scala transformer/UnCurry.scala transformer/UnCurryPhase.scala +transformer/matching/AlgebraicMatcher.scala +transformer/matching/Autom2Scala.scala +transformer/matching/TracerInScala.scala +transformer/matching/LeftTracerInScala.scala +transformer/matching/RightTracerInScala.scala +transformer/matching/WordAutomInScala.scala +transformer/matching/SequenceMatcher.scala + #transformer/matching/FullRegularTranslator.scala #transformer/matching/MutableGrammar.scala #transformer/matching/NonTermFactory.scala diff --git a/sources/scala/concurrent/Process.scala b/sources/scala/concurrent/Process.scala index 60dcc9ff6c..5273f2a25e 100644 --- a/sources/scala/concurrent/Process.scala +++ b/sources/scala/concurrent/Process.scala @@ -11,58 +11,58 @@ package scala.concurrent; object Process { - def spawn(def body:unit):Process = { + def spawn(body: => Unit): Process = { val p = new Process(body); p.start(); p; } - def spawn_link(def body:unit):Process = { + def spawn_link(body: => Unit): Process = { self.spawn_link(body); } - def send(p:Process,msg:Actor#Message) = + def send(p: Process,msg: Actor#Message) = p.send(msg); def receive[a](f: PartialFunction[Actor#Message, a]): a = self.receive(f); - def receiveWithin[a](msec: long)(f: PartialFunction[Actor#Message, a]):a = + def receiveWithin[a](msec: long)(f: PartialFunction[Actor#Message, a]): a = self.receiveWithin(msec)(f); - def self:Process = { + def self: Process = { if (Thread.currentThread().isInstanceOf[Process]) Thread.currentThread().asInstanceOf[Process] else error("Self called outside a process"); } - def exit(p:Process,reason:AnyRef) = + def exit(p: Process, reason: AnyRef) = p.exit(reason); } -class Process(def body:unit) extends Actor() { - private var exitReason:AnyRef = null; - private var links:List[Process] = Nil; +class Process(body: => Unit) extends Actor() { + private var exitReason: AnyRef = null; + private var links: List[Process] = Nil; override def run() = { try {body} catch { - case _:java.lang.InterruptedException => + case _: java.lang.InterruptedException => signal(exitReason); case (exitSignal) => signal(exitSignal); } } - private def signal(s:Actor#Message) = { + private def signal(s: Actor#Message) = { links.foreach((p:Process) => p.send(Tuple3('EXIT,this,s))); } - def !(msg:Actor#Message) = + def !(msg: Actor#Message) = send(msg); - def link(p:Process) = { + def link(p: Process) = { links = p::links; } - def spawn_link(def body:unit) = { + def spawn_link(body: => Unit) = { val p = new Process(body); p.link(this); p.start(); @@ -71,7 +71,7 @@ class Process(def body:unit) extends Actor() { def self = this; - def exit(reason:AnyRef):unit = { + def exit(reason: AnyRef): Unit = { exitReason = reason; interrupt(); } diff --git a/sources/scala/tools/scalac/transformer/TransMatch.scala b/sources/scala/tools/scalac/transformer/TransMatch.scala index 1ec204f240..f3357b42e5 100644 --- a/sources/scala/tools/scalac/transformer/TransMatch.scala +++ b/sources/scala/tools/scalac/transformer/TransMatch.scala @@ -18,7 +18,7 @@ import scalac.transformer.{ OwnerTransformer => scalac_transformer_OwnerTransfor import scalac.transformer.matching.PartialMatcher ; import scalac.transformer.matching.PatternMatcher ; -import scalac.transformer.matching.AlgebraicMatcher ; +//import scalac.transformer.matching.AlgebraicMatcher ; /** A transformer for expanding match expressions into * flat sequences of .is and .as method calls @@ -142,7 +142,7 @@ class TransMatch( global:scalac_Global ) j = j + 1; } // TEST */ - val am = new AlgebraicMatcher( cunit ); + val am = new matching.AlgebraicMatcher( cunit ); val matcher = new PartialMatcher( currentOwner, root, restpe ); am.construct( matcher, cases.asInstanceOf[ Array[Tree] ] ); matcher.tree diff --git a/sources/scala/tools/scalac/util/NewArray.scala b/sources/scala/tools/scalac/util/NewArray.scala index ff68779a3f..6c55656a17 100644 --- a/sources/scala/tools/scalac/util/NewArray.scala +++ b/sources/scala/tools/scalac/util/NewArray.scala @@ -16,82 +16,55 @@ object NewArray { def Tree(xs: Tree*): Array[Tree] = { val arr = new Array[Tree](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def TreeArray(xs: Array[Tree]*): Array[Array[Tree]] = { val arr = new Array[Array[Tree]](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def ValDef(xs: Tree$ValDef*): Array[Tree$ValDef] = { val arr = new Array[Tree$ValDef](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def ValDefArray(xs: Array[Tree$ValDef]*): Array[Array[Tree$ValDef]] = { val arr = new Array[Array[Tree$ValDef]](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def CaseDef(xs: Tree$CaseDef*): Array[Tree$CaseDef] = { val arr = new Array[Tree$CaseDef](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def Name(xs: Name*): Array[Name] = { val arr = new Array[Name](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def Symbol(xs: Symbol*): Array[Symbol] = { val arr = new Array[Symbol](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def SymbolArray(xs: Array[Symbol]*): Array[Array[Symbol]] = { val arr = new Array[Array[Symbol]](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } def Type(xs: Type*): Array[Type] = { val arr = new Array[Type](xs.length); - var i = 0; - for (val t <- xs.elements) { - arr(i) = t; i = i + 1; - } + xs.elements.copyToArray(arr, 0); arr } diff --git a/sources/scala/xml/Text.scala b/sources/scala/xml/Text.scala index c81918bcea..1671bdbf79 100644 --- a/sources/scala/xml/Text.scala +++ b/sources/scala/xml/Text.scala @@ -28,7 +28,7 @@ case class Text( text:String ) extends SpecialNode { def label = "#PCDATA"; final override def equals(x:Any) = x match { - case s:String => text.equals( s ); + case s:String => text.equals( s ); case Text( s ) => text.equals( s ); case _ => false; } diff --git a/sources/scalac/util/Names.java b/sources/scalac/util/Names.java index ed4810d98d..286038afa9 100644 --- a/sources/scalac/util/Names.java +++ b/sources/scalac/util/Names.java @@ -160,6 +160,7 @@ public class Names { public static final Name box = Name.fromString("box"); public static final Name caseArity = Name.fromString("caseArity"); public static final Name caseElement = Name.fromString("caseElement"); + public static final Name cur = Name.fromString("cur"); // used in translation of automata public static final Name checkCastability = Name.fromString("checkCastability"); public static final Name coerce = Name.fromString("coerce"); public static final Name defaultValue = Name.fromString("defaultValue"); @@ -218,6 +219,7 @@ public class Names { public static final Name wait = Name.fromString("wait"); public static final Name xml = Name.fromString("xml"); + public static final Name ZNOT = encode("!"), ZAND = encode("&&"), -- cgit v1.2.3