diff options
author | Martin Odersky <odersky@gmail.com> | 2003-11-26 08:48:02 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-11-26 08:48:02 +0000 |
commit | c8f278f400e9313eecb8a61ea055730ead5fdcb3 (patch) | |
tree | bd2e44a4eaebd5f0cbec3d6713ee662e3f9ed315 /sources | |
parent | 4a5e0ea95cfae8b739138f49441a0497d5e373df (diff) | |
download | scala-c8f278f400e9313eecb8a61ea055730ead5fdcb3.tar.gz scala-c8f278f400e9313eecb8a61ea055730ead5fdcb3.tar.bz2 scala-c8f278f400e9313eecb8a61ea055730ead5fdcb3.zip |
*** empty log message ***
Diffstat (limited to 'sources')
27 files changed, 142 insertions, 133 deletions
diff --git a/sources/scala/concurrent/MailBox.scala b/sources/scala/concurrent/MailBox.scala index 4bec0ee461..d8c59c774b 100644 --- a/sources/scala/concurrent/MailBox.scala +++ b/sources/scala/concurrent/MailBox.scala @@ -108,7 +108,7 @@ trait ListQueueCreator { def queueCreate[a]: QueueModule[a] = new QueueModule[a] { type t = List[a]; def make: t = Nil; - def append(l: t, x: a): t = l ::: List(x); + def append(l: t, x: a): t = l ::: x :: Nil; def extractFirst(l: t, p: a => boolean): Option[Pair[a, t]] = l match { case Nil => None diff --git a/sources/scala/concurrent/pilib.scala b/sources/scala/concurrent/pilib.scala index b45800eec7..a201e4c604 100644 --- a/sources/scala/concurrent/pilib.scala +++ b/sources/scala/concurrent/pilib.scala @@ -131,7 +131,7 @@ object pilib with Monitor { */ private def compare(s1: Sum, ss: List[Sum]): List[Sum] = ss match { - case Nil => ss ::: List(s1) + case Nil => ss ::: s1 :: Nil case s2 :: rest => matches(s1.gs, s2.gs) match { case None => s2 :: compare(s1, rest) case Some(Pair(c1, c2)) => { diff --git a/sources/scala/tools/scalac/CompilerPhases.scala b/sources/scala/tools/scalac/CompilerPhases.scala index 10cadeaf17..02ed295dfb 100644 --- a/sources/scala/tools/scalac/CompilerPhases.scala +++ b/sources/scala/tools/scalac/CompilerPhases.scala @@ -6,13 +6,15 @@ // $Id$ -package scala.tools.scalac; +import scalac.{CompilerPhases => scalac_CompilerPhases} + +package scala.tools.scalac { /** * This class defines all compiler phases and maintains a list of * active phases. */ -class CompilerPhases extends scalac.CompilerPhases { +class CompilerPhases extends scalac_CompilerPhases { protected override def PARSER_PHASE(): Class = Class.forName("scala.tools.scalac.ast.parser.ParserPhase$class"); @@ -20,3 +22,4 @@ class CompilerPhases extends scalac.CompilerPhases { Class.forName("scala.tools.scalac.typechecker.AnalyzerPhase$class"); } +} diff --git a/sources/scala/tools/scalac/Global.scala b/sources/scala/tools/scalac/Global.scala index 2daead9e55..cd0cd2d3ec 100644 --- a/sources/scala/tools/scalac/Global.scala +++ b/sources/scala/tools/scalac/Global.scala @@ -6,17 +6,18 @@ ** $Id: Global.scala \* */ -package scala.tools.scalac; +import scalac.{CompilerCommand, Global => scalac_Global}; +import scalac.ast.printer.TreePrinter; + +package scala.tools.scalac { import ast.printer._; -import scalac.CompilerCommand; import java.io.OutputStream; -import scalac.ast.printer.TreePrinter; /** The global environment of a compiler run * */ -class Global(args: CompilerCommand, interpret: boolean) extends scalac.Global(args, interpret) { +class Global(args: CompilerCommand, interpret: boolean) extends scalac_Global(args, interpret) { def this(args: CompilerCommand) = this(args, false); @@ -26,3 +27,4 @@ class Global(args: CompilerCommand, interpret: boolean) extends scalac.Global(ar new HTMLTreePrinter(printStream); } +} diff --git a/sources/scala/tools/scalac/Main.scala b/sources/scala/tools/scalac/Main.scala index c0a5a3ed0b..86e3b684a7 100644 --- a/sources/scala/tools/scalac/Main.scala +++ b/sources/scala/tools/scalac/Main.scala @@ -6,11 +6,11 @@ ** $Id$ \* */ -package scala.tools.scalac; - import scalac.util.Reporter; import scalac.CompilerCommand; +package scala.tools.scalac { + /** The main class for SoCoS, a compiler for the programming * language Scala. * @@ -37,3 +37,4 @@ object Main { System.exit(if (reporter.errors() > 0) 1 else 0); } } +} diff --git a/sources/scala/tools/scalac/ast/TreeList.scala b/sources/scala/tools/scalac/ast/TreeList.scala index 1fda8b49b6..8a259ce4e1 100644 --- a/sources/scala/tools/scalac/ast/TreeList.scala +++ b/sources/scala/tools/scalac/ast/TreeList.scala @@ -7,10 +7,10 @@ // $Id$ -package scala.tools.scalac.ast; - import scalac.ast._; +package scala.tools.scalac.ast { + /** List of trees. */ @@ -71,3 +71,4 @@ final class TreeList(ts: Array[Tree]) { ts; } } +} diff --git a/sources/scala/tools/scalac/ast/parser/Parser.scala b/sources/scala/tools/scalac/ast/parser/Parser.scala index a889dcd819..adca0088a1 100644 --- a/sources/scala/tools/scalac/ast/parser/Parser.scala +++ b/sources/scala/tools/scalac/ast/parser/Parser.scala @@ -6,22 +6,19 @@ ** $Id$ \* */ -package scala.tools.scalac.ast.parser; - import scalac.ast.parser.PatternNormalizer; -import ch.epfl.lamp.util.Position; - -import java.util.{Map, Stack, ArrayList, LinkedList}; -import scalac._; -import scalac.util._; - import scalac.symtab.Modifiers; import scalac.ast._; -import Tree._; +import scalac._; +import scalac.util._; +import ch.epfl.lamp.util.Position; +import java.util.{Map, Stack, ArrayList, LinkedList}; import java.lang.{Integer, Long, Float, Double}; import scala.Iterator; import scala.tools.scalac.util.NewArray; +package scala.tools.scalac.ast.parser { + /** A recursive descent parser for the programming language Scala. * * @author Martin Odersky, Matthias Zenger, Burak Emir @@ -30,7 +27,7 @@ import scala.tools.scalac.util.NewArray; class Parser(unit: Unit) { import Tokens._; - import scala.tools.scalac.ast.TreeList; + import scala.tools.scalac.ast.{TreeList => myTreeList} /** the lexical analyzer */ @@ -635,7 +632,7 @@ class Parser(unit: Unit) { /** Types ::= Type {`,' Type} */ def types(): Array[Tree] = { - val ts = new TreeList(); + val ts = new myTreeList(); ts.append(typ()); while (s.token == COMMA) { s.nextToken(); @@ -660,7 +657,7 @@ class Parser(unit: Unit) { t = typ(); if (s.token == COMMA) { s.nextToken(); - val ts = new TreeList(); + val ts = new myTreeList(); ts.append(t); ts.append(types()); accept(RPAREN); @@ -685,7 +682,7 @@ class Parser(unit: Unit) { val pos = s.pos; val t = simpleType(); if (s.token == WITH || s.token == LBRACE) { - val ts = new TreeList(); + val ts = new myTreeList(); ts.append(t); while (s.token == WITH) { s.nextToken(); @@ -747,7 +744,7 @@ class Parser(unit: Unit) { /** Exprs ::= Expr {`,' Expr} * | Expr `:' `_' `*' */ - def exprs(): Array[Tree] = { val ts = new TreeList(); + def exprs(): Array[Tree] = { val ts = new myTreeList(); ts.append(expr(true, false)); while (s.token == COMMA) { s.nextToken(); @@ -939,7 +936,7 @@ class Parser(unit: Unit) { t = expr(); if (s.token == COMMA) { val commapos = s.skipToken(); - val ts = new TreeList(); + val ts = new myTreeList(); ts.append(t); ts.append(exprs()); accept(RPAREN); @@ -1004,7 +1001,7 @@ class Parser(unit: Unit) { val pos = accept(LBRACE); val res = if (s.token == CASE) { - val stats = new TreeList(); + val stats = new myTreeList(); do { stats.append(caseClause()); } while (s.token == CASE); @@ -1022,7 +1019,7 @@ class Parser(unit: Unit) { /** Block ::= BlockStatSeq */ def block(pos: int): Tree = { - val stats = blockStatSeq(new TreeList()); + val stats = blockStatSeq(new myTreeList()); if (stats.length == 1 && stats(0).isTerm()) stats(0) else make.Block(pos, stats) } @@ -1043,7 +1040,7 @@ class Parser(unit: Unit) { * | Expr */ def enumerators(): Array[Tree] = { - val enums = new TreeList(); + val enums = new myTreeList(); enums.append(generator()); while (s.token == SEMI) { s.nextToken(); @@ -1107,7 +1104,7 @@ class Parser(unit: Unit) { /** Patterns ::= Pattern {`,' Pattern} */ def patterns(): Array[Tree] = { - val ts = new TreeList(); + val ts = new myTreeList(); ts.append(pattern()); while (s.token == COMMA) { s.nextToken(); @@ -1122,7 +1119,7 @@ class Parser(unit: Unit) { val pos = s.pos; val first = pattern1(); if (s.token == IDENTIFIER && s.name == BAR) { - val choices = new TreeList(); + val choices = new myTreeList(); choices.append( first ); while (s.token == IDENTIFIER && s.name == BAR) { s.nextToken(); @@ -1344,7 +1341,7 @@ class Parser(unit: Unit) { */ def paramClause(): Array[Tree$ValDef] = { val pos = accept(LPAREN); - val params = new TreeList(); + val params = new myTreeList(); if (s.token != RPAREN) { params.append(param()); while (s.token == COMMA) { @@ -1384,7 +1381,7 @@ class Parser(unit: Unit) { * FunTypeParamClauseOpt ::= [`[' FunTypeParam {`,' FunTypeParam} `]'] */ def typeParamClauseOpt(variant: boolean): Array[Tree$AbsTypeDef] = { - val params = new TreeList(); + val params = new myTreeList(); if (s.token == LBRACKET) { s.nextToken(); params.append(typeParam(variant)); @@ -1433,7 +1430,7 @@ class Parser(unit: Unit) { */ def importClause(): Array[Tree] = { accept(IMPORT); - val ts = new TreeList(); + val ts = new myTreeList(); ts.append(importExpr()); while (s.token == COMMA) { s.nextToken(); @@ -1532,7 +1529,7 @@ class Parser(unit: Unit) { * | type TypeDcl {`,' TypeDcl} */ def defOrDcl(mods: int): Array[Tree] = { - val ts = new TreeList(); + val ts = new myTreeList(); s.token match { case VAL => do { @@ -1568,7 +1565,7 @@ class Parser(unit: Unit) { */ def clsDef(_mods: int): Array[Tree] = { var mods = _mods; - val ts = new TreeList(); + val ts = new myTreeList(); s.token match { case CLASS | CASECLASS | TRAIT => if (s.token == CASECLASS) @@ -1665,7 +1662,7 @@ class Parser(unit: Unit) { def constrExpr(): Tree = if (s.token == LBRACE) { val pos = s.skipToken(); - val statlist = new TreeList(); + val statlist = new myTreeList(); statlist.append(selfInvocation()); val stats = if (s.token == SEMI) { s.nextToken(); blockStatSeq(statlist) } @@ -1713,7 +1710,7 @@ class Parser(unit: Unit) { val clazzname = ident().toTypeName(); val tparams = typeParamClauseOpt(true); val params = paramClauseOpt(); - val result = new TreeList(); + val result = new myTreeList(); popComment(make.ClassDef(pos, mods, clazzname, tparams, params, simpleTypedOpt(), classTemplate())) } @@ -1733,7 +1730,7 @@ class Parser(unit: Unit) { template() } else if (s.token == WITH) { s.nextToken(); - val parents = new TreeList(); + val parents = new myTreeList(); parents.append(scalaObjectConstr(pos)); template(parents) } else if (s.token == LBRACE) { @@ -1753,9 +1750,9 @@ class Parser(unit: Unit) { /** Template ::= Constr {`with' Constr} [TemplateBody] */ def template(): Tree$Template = - template(new TreeList()); + template(new myTreeList()); - def template(parents: TreeList): Tree$Template = { + def template(parents: myTreeList): Tree$Template = { val pos = s.pos; parents.append(constr()); while (s.token == WITH) { @@ -1817,7 +1814,7 @@ class Parser(unit: Unit) { * | */ def topStatSeq(): Array[Tree] = { - val stats = new TreeList(); + val stats = new myTreeList(); while (s.token != RBRACE && s.token != EOF) { if (s.token == PACKAGE) { stats.append(packaging()); @@ -1846,7 +1843,7 @@ class Parser(unit: Unit) { * | */ def templateStatSeq(): Array[Tree] = { - val stats = new TreeList(); + val stats = new myTreeList(); while (s.token != RBRACE && s.token != EOF) { if (s.token == IMPORT) { stats.append(importClause()); @@ -1868,7 +1865,7 @@ class Parser(unit: Unit) { * | */ def refineStatSeq(): Array[Tree] = { - val stats = new TreeList(); + val stats = new myTreeList(); while (s.token != RBRACE && s.token != EOF) { if (isDclIntro()) { stats.append(defOrDcl(0)); @@ -1887,7 +1884,7 @@ class Parser(unit: Unit) { * | Expr * | */ - def blockStatSeq(stats: TreeList): Array[Tree] = { + def blockStatSeq(stats: myTreeList): Array[Tree] = { while ((s.token != RBRACE) && (s.token != EOF) && (s.token != CASE)) { if (s.token == IMPORT) { stats.append(importClause()); @@ -1926,7 +1923,7 @@ class Parser(unit: Unit) { s.nextToken(); NewArray.Tree(makePackaging(pos, pkg, topStatSeq())); } else { - val stats = new TreeList(); + val stats = new myTreeList(); accept(LBRACE); stats.append(makePackaging(pos, pkg, topStatSeq())); accept(RBRACE); @@ -1938,5 +1935,4 @@ class Parser(unit: Unit) { } } } - - +} diff --git a/sources/scala/tools/scalac/ast/parser/ParserPhase.scala b/sources/scala/tools/scalac/ast/parser/ParserPhase.scala index 8f262a77a7..14dc2b6d56 100644 --- a/sources/scala/tools/scalac/ast/parser/ParserPhase.scala +++ b/sources/scala/tools/scalac/ast/parser/ParserPhase.scala @@ -6,14 +6,14 @@ // $Id$ -package scala.tools.scalac.ast.parser; - -import scalac.Global; +import scalac.{Global => scalac_Global} import scalac.Phase; import scalac.PhaseDescriptor; import scalac.Unit; -class ParserPhase(global: Global, descriptor: PhaseDescriptor) extends Phase(global, descriptor) { +package scala.tools.scalac.ast.parser { + +class ParserPhase(global: scalac_Global, descriptor: PhaseDescriptor) extends Phase(global, descriptor) { def apply(units: Array[Unit]): unit = { for (val i <- Iterator.range(0, units.length)) { @@ -23,3 +23,4 @@ class ParserPhase(global: Global, descriptor: PhaseDescriptor) extends Phase(glo } } } +} diff --git a/sources/scala/tools/scalac/ast/parser/Scanner.scala b/sources/scala/tools/scalac/ast/parser/Scanner.scala index 678a39aa37..dac8c8eada 100644 --- a/sources/scala/tools/scalac/ast/parser/Scanner.scala +++ b/sources/scala/tools/scalac/ast/parser/Scanner.scala @@ -6,15 +6,15 @@ ** $Id$ \* */ -package scala.tools.scalac.ast.parser; - -import ch.epfl.lamp.util.Position; -import ch.epfl.lamp.util.SourceFile; - import scalac._; import scalac.util.Name; import scalac.ast.parser.SourceRepresentation; +package scala.tools.scalac.ast.parser { + +import ch.epfl.lamp.util.Position; +import ch.epfl.lamp.util.SourceFile; + /** A scanner for the programming language Scala. * @@ -804,5 +804,4 @@ class Scanner(_unit: Unit) extends TokenData { enterKeyword("@", AT); } } - - +} diff --git a/sources/scala/tools/scalac/ast/parser/TokenData.scala b/sources/scala/tools/scalac/ast/parser/TokenData.scala index 65ed04e34c..ab3b0ba9f5 100644 --- a/sources/scala/tools/scalac/ast/parser/TokenData.scala +++ b/sources/scala/tools/scalac/ast/parser/TokenData.scala @@ -6,10 +6,10 @@ ** $Id$ \* */ -package scala.tools.scalac.ast.parser; - import scalac.util.Name; +package scala.tools.scalac.ast.parser { + /** A class for representing a token's data. * * @author Matthias Zenger @@ -44,3 +44,4 @@ class TokenData { this.floatVal = td.floatVal; } } +} diff --git a/sources/scala/tools/scalac/ast/printer/HTMLPrinter.scala b/sources/scala/tools/scalac/ast/printer/HTMLPrinter.scala index c99eaea782..0a9f9fc56f 100644 --- a/sources/scala/tools/scalac/ast/printer/HTMLPrinter.scala +++ b/sources/scala/tools/scalac/ast/printer/HTMLPrinter.scala @@ -7,16 +7,16 @@ // $Id$ -package scala.tools.scalac.ast.printer; - import scalac.Unit; import scalac.symtab.Symbol; +import scalac.ast.Tree; + +package scala.tools.scalac.ast.printer { import java.io.OutputStream; import java.io.PrintWriter; import java.lang.Math; import java.util.HashMap; -import scalac.ast.Tree; /** * HTML pretty printer for Scala abstract syntax trees. @@ -165,3 +165,4 @@ class HTMLTreePrinter(stream: OutputStream) extends TextTreePrinter(stream) { endTag("pre"); } } +} diff --git a/sources/scala/tools/scalac/ast/printer/TextTreePrinter.scala b/sources/scala/tools/scalac/ast/printer/TextTreePrinter.scala index 063b7551dc..261325e178 100644 --- a/sources/scala/tools/scalac/ast/printer/TextTreePrinter.scala +++ b/sources/scala/tools/scalac/ast/printer/TextTreePrinter.scala @@ -7,17 +7,17 @@ // $Id$ -package scala.tools.scalac.ast.printer; - import scalac.ast.printer._; import scalac.ast._; import scalac.symtab._; import scalac.util.Debug; -import scalac.Global; +import scalac.{Global => scalac_Global}; import scalac.Unit; import scalac.util.Name; import scalac.util.TypeNames; +package scala.tools.scalac.ast.printer { + import java.io._; /** @@ -116,8 +116,8 @@ class TextTreePrinter(_out: PrintWriter, autoFlush: boolean) with TreePrinter { case Keyword(name) => printString(name) case Identifier(sym, name, _) => printString(name); - if (sym != null && Global.instance.uniqid) - printString("#" + Global.instance.uniqueID.id(sym)) + if (sym != null && scalac_Global.instance.uniqid) + printString("#" + scalac_Global.instance.uniqueID.id(sym)) case Sequence(elements) => print(elements) } @@ -182,19 +182,19 @@ class TextTreePrinter(_out: PrintWriter, autoFlush: boolean) with TreePrinter { protected final val TXT_AT = Simple("@"); protected final val TXT_WITH_SP = - Sequence(List(Space, KW_WITH, Space)); + Sequence(Predef.List(Space, KW_WITH, Space)); protected final val TXT_BLOCK_BEGIN = - Sequence(List(TXT_LEFT_BRACE, Newline)); + Sequence(Predef.List(TXT_LEFT_BRACE, Newline)); protected final val TXT_BLOCK_END = - Sequence(List(Newline, TXT_RIGHT_BRACE)); + Sequence(Predef.List(Newline, TXT_RIGHT_BRACE)); protected final val TXT_BLOCK_SEP = - Sequence(List(TXT_SEMICOLON, Newline)); + Sequence(Predef.List(TXT_SEMICOLON, Newline)); protected final val TXT_COMMA_SP = - Sequence(List(TXT_COMMA, Space)); + Sequence(Predef.List(TXT_COMMA, Space)); protected final val TXT_ELSE_NL = - Sequence(List(KW_ELSE, Newline)); + Sequence(Predef.List(KW_ELSE, Newline)); protected final val TXT_BAR_SP = - Sequence(List(Space, TXT_BAR, Space)); + Sequence(Predef.List(Space, TXT_BAR, Space)); def print(unit: Unit): unit = { printUnitHeader(unit); @@ -556,7 +556,7 @@ class TextTreePrinter(_out: PrintWriter, autoFlush: boolean) with TreePrinter { // Printing of trees protected def printType(tree: Tree): unit = - if (Global.instance.printtypes) { + if (scalac_Global.instance.printtypes) { print(TXT_LEFT_BRACE); print(if (tree.\"type"/*"*/ != null) Simple(tree.\"type"/*"*/.toString()) else TXT_NULL); @@ -619,7 +619,7 @@ class TextTreePrinter(_out: PrintWriter, autoFlush: boolean) with TreePrinter { val types: java.util.List = new java.util.ArrayList(); if (symbol != null) { - val global: Global = Global.instance; + val global: scalac_Global = scalac_Global.instance; if (global.currentPhase.id > global.PHASE.EXPLICITOUTER.id()) { val i: Scope$SymbolIterator = symbol.members().iterator(true); while (i.hasNext()) { @@ -704,3 +704,4 @@ class TextTreePrinter(_out: PrintWriter, autoFlush: boolean) with TreePrinter { printOpt(TXT_SUBTYPE, hibound, true); } } +} diff --git a/sources/scala/tools/scalac/typechecker/Analyzer.scala b/sources/scala/tools/scalac/typechecker/Analyzer.scala index 24f2dfadd0..00f7f1f029 100644 --- a/sources/scala/tools/scalac/typechecker/Analyzer.scala +++ b/sources/scala/tools/scalac/typechecker/Analyzer.scala @@ -13,8 +13,6 @@ // todo: synchronize on module instantiation. // todo: empty package -package scala.tools.scalac.typechecker; - import ch.epfl.lamp.util.Position; import scalac._; import scalac.util._; @@ -26,10 +24,13 @@ import Tree._; import java.util.HashMap; import java.lang.{Boolean, Byte, Short, Character, Integer, Object} import scala.tools.scalac.util.NewArray; +import scalac.{Global => scalac_Global} + +package scala.tools.scalac.typechecker { /** The main attribution phase. */ -class Analyzer(global: Global, descr: AnalyzerPhase) extends Transformer(global) { +class Analyzer(global: scalac_Global, descr: AnalyzerPhase) extends Transformer(global) { import Modifiers._; import Kinds._; @@ -112,7 +113,7 @@ class Analyzer(global: Global, descr: AnalyzerPhase) extends Transformer(global) this.context = descr.contexts.remove(unit).asInstanceOf[Context]; assert(this.context != null, "could not find context for " + unit); unit.body = transformStatSeq(unit.body, Symbol.NONE); - if (global.target != Global.TARGET_INT && global.reporter.errors() == 0) { + if (global.target != scalac_Global.TARGET_INT && global.reporter.errors() == 0) { genSymData(unit.body); } this.unit = null; @@ -1488,7 +1489,7 @@ class Analyzer(global: Global, descr: AnalyzerPhase) extends Transformer(global) return error(tree.pos, "reference to " + name + " is ambiguous;\n" + "it is both defined in " + sym.owner() + - " and imported subsequently by \n" + nextimports.tree); + " and imported subsequently by \n" + lastimports.tree); } else { // check that there are no other applicable imports in same scope. while (nextimports != null && nextimports.enclScope == lastimports.enclScope) { @@ -2720,6 +2721,6 @@ class Analyzer(global: Global, descr: AnalyzerPhase) extends Transformer(global) } } } - +} // LocalWords: SOcos diff --git a/sources/scala/tools/scalac/typechecker/AnalyzerPhase.scala b/sources/scala/tools/scalac/typechecker/AnalyzerPhase.scala index bfa4eef3b5..e1d686edc3 100644 --- a/sources/scala/tools/scalac/typechecker/AnalyzerPhase.scala +++ b/sources/scala/tools/scalac/typechecker/AnalyzerPhase.scala @@ -6,8 +6,6 @@ // $Id$ -package scala.tools.scalac.typechecker; - import ch.epfl.lamp.util.Position; import scalac._; import scalac.util._; @@ -17,8 +15,12 @@ import scalac.checkers._; import java.util.HashMap; import java.util.ArrayList; import scala.tools.scalac.util.NewArray; +import scalac.typechecker.{AnalyzerPhase => scalac_AnalyzerPhase} +import scalac.{Global => scalac_Global} + +package scala.tools.scalac.typechecker { -class AnalyzerPhase(global: Global, descriptor: PhaseDescriptor) extends scalac.typechecker.AnalyzerPhase(global, descriptor) { +class AnalyzerPhase(global: scalac_Global, descriptor: PhaseDescriptor) extends scalac_AnalyzerPhase(global, descriptor) { val startContext = new Context( Tree.Empty, @@ -58,11 +60,11 @@ class AnalyzerPhase(global: Global, descriptor: PhaseDescriptor) extends scalac. override def apply(units: Array[Unit]): unit = new Analyzer(global, this).apply(units); - override def lateEnter(global: Global, unit: Unit, symbol: Symbol): unit = { + override def lateEnter(global: scalac_Global, unit: Unit, symbol: Symbol): unit = { new Analyzer(global, this).lateEnter(unit, symbol); } - override def postCheckers(global: Global): Array[Checker] = + override def postCheckers(global: scalac_Global): Array[Checker] = NewArray.Checker( new CheckSymbols(global), new CheckTypes(global), @@ -70,4 +72,4 @@ class AnalyzerPhase(global: Global, descriptor: PhaseDescriptor) extends scalac. new CheckNames(global) ); } - +} diff --git a/sources/scala/tools/scalac/typechecker/ConstantFolder.scala b/sources/scala/tools/scalac/typechecker/ConstantFolder.scala index c286be870d..6f63dddf90 100644 --- a/sources/scala/tools/scalac/typechecker/ConstantFolder.scala +++ b/sources/scala/tools/scalac/typechecker/ConstantFolder.scala @@ -10,13 +10,13 @@ * if this copyright notice stays attached. *************************************************************************/ -package scala.tools.scalac.typechecker; - import scalac.util._; import scalac.ast._; import scalac.symtab._; import java.lang.{Byte,Character,Short,Integer,Long,Float,Double,Boolean,Object,Number} +package scala.tools.scalac.typechecker { + class ConstantFolder(ana: Analyzer) { import TypeTags._; @@ -303,9 +303,4 @@ class ConstantFolder(ana: Analyzer) { } } } - - - - - - +} diff --git a/sources/scala/tools/scalac/typechecker/Context.scala b/sources/scala/tools/scalac/typechecker/Context.scala index e281ce649f..c8b885fe7b 100644 --- a/sources/scala/tools/scalac/typechecker/Context.scala +++ b/sources/scala/tools/scalac/typechecker/Context.scala @@ -5,12 +5,11 @@ ** ** $Id$ \* */ -package scala.tools.scalac.typechecker; - import scalac.symtab._; -import scalac.ast.Tree; import scalac.ast._; +package scala.tools.scalac.typechecker { + object Context { val NONE = new Context(); } @@ -61,4 +60,4 @@ class Context { outer.isTopLevel() } } - +} diff --git a/sources/scala/tools/scalac/typechecker/DeSugarize.scala b/sources/scala/tools/scalac/typechecker/DeSugarize.scala index 3358b7ac3b..087e35e46f 100644 --- a/sources/scala/tools/scalac/typechecker/DeSugarize.scala +++ b/sources/scala/tools/scalac/typechecker/DeSugarize.scala @@ -5,8 +5,6 @@ ** ** ** $Id$ \* */ -package scala.tools.scalac.typechecker; - import java.io._; import java.util.ArrayList; import java.lang.Object; @@ -16,23 +14,26 @@ import scalac.util._; import scalac.symtab._; import scalac.ast._; import scalac.typechecker.Infer; +import scalac.{Global => scalac_Global} import scala.tools.scalac.ast.printer.TextTreePrinter; import scala.tools.scalac.util.NewArray; +package scala.tools.scalac.typechecker { + /** A transformer for removing syntactic sugar. This transformer does * not need any type or symbol-table information. * * @author Martin Odersky * @version 2.0 */ -class DeSugarize(make: TreeFactory, copy: TreeCopier, gen: TreeGen, infer: Infer, global: Global) { +class DeSugarize(make: TreeFactory, copy: TreeCopier, gen: TreeGen, infer: Infer, global: scalac_Global) { import Kinds._, Modifiers._; protected final val freshNameCreator = global.freshNameCreator; - def this(analyzer: Analyzer, global: Global) = + def this(analyzer: Analyzer, global: scalac_Global) = this(analyzer.make, analyzer.copy, analyzer.gen, analyzer.infer, global); // Auxiliary definitions and functions ------------------------------------------- @@ -570,3 +571,4 @@ class DeSugarize(make: TreeFactory, copy: TreeCopier, gen: TreeGen, infer: Infer } } } +} diff --git a/sources/scala/tools/scalac/typechecker/ImportList.scala b/sources/scala/tools/scalac/typechecker/ImportList.scala index e0e1b7969b..136aa5474f 100644 --- a/sources/scala/tools/scalac/typechecker/ImportList.scala +++ b/sources/scala/tools/scalac/typechecker/ImportList.scala @@ -6,13 +6,13 @@ ** $Id$ \* */ -package scala.tools.scalac.typechecker; - import scalac._; import scalac.util._; import scalac.symtab._; import scalac.ast._; +package scala.tools.scalac.typechecker { + ///////////////////////////////////////////////////////////////////////////// // Import Lists ///////////////////////////////////////////////////////////////////////////// @@ -63,3 +63,4 @@ case class ImportList(tree: Tree, enclScope: Scope, prev: ImportList) { } } } +} diff --git a/sources/scala/tools/scalac/typechecker/Infer.scala b/sources/scala/tools/scalac/typechecker/Infer.scala index 5fcc008e54..e1a9825f11 100644 --- a/sources/scala/tools/scalac/typechecker/Infer.scala +++ b/sources/scala/tools/scalac/typechecker/Infer.scala @@ -6,11 +6,9 @@ // $Id$ -package scala.tools.scalac.typechecker; - import java.lang.Object; -import scalac.Global; +import scalac.{Global => scalac_Global} import scalac.ApplicationError; import scalac.util._; import scalac.ast._; @@ -18,7 +16,9 @@ import scalac.symtab._; import scala.tools.scalac.util.NewArray; -class Infer(global: Global, gen: TreeGen, make: TreeFactory) { +package scala.tools.scalac.typechecker { + +class Infer(global: scalac_Global, gen: TreeGen, make: TreeFactory) { import Modifiers._, Kinds._; @@ -338,7 +338,7 @@ class Infer(global: Global, gen: TreeGen, make: TreeFactory) { }} if (!cyclic) { if (up) { - if (bound.symbol() != Global.instance.definitions.ANY_CLASS) + if (bound.symbol() != definitions.ANY_CLASS) constr.hibounds = new Type$List( bound.subst(tparams, tvars), constr.hibounds); { var j = 0; while (j < tvars.length) { @@ -351,7 +351,7 @@ class Infer(global: Global, gen: TreeGen, make: TreeFactory) { j = j + 1 }} } else { - if (bound.symbol() != Global.instance.definitions.ALL_CLASS) + if (bound.symbol() != definitions.ALL_CLASS) constr.lobounds = new Type$List( bound.subst(tparams, tvars), constr.lobounds); { var j = 0; while (j < tvars.length) { @@ -436,7 +436,7 @@ class Infer(global: Global, gen: TreeGen, make: TreeFactory) { */ private def normalize(tp: Type): Type = tp match { case Type$MethodType(params, restype) => - global.definitions.FUNCTION_TYPE( + definitions.FUNCTION_TYPE( Symbol.getType(params), normalize(restype)); case Type$PolyType(tparams, restype) if (tparams.length == 0) => normalize(restype); @@ -456,7 +456,7 @@ class Infer(global: Global, gen: TreeGen, make: TreeFactory) { private def normalizeArgs(targs: Array[Type], tparams: Array[Symbol]): Array[Symbol] = { var uninstantiated: Type$List = Type$List.EMPTY; { var i = 0; while (i < targs.length) { - if (targs(i).symbol() == Global.instance.definitions.ALL_CLASS) { + if (targs(i).symbol() == definitions.ALL_CLASS) { targs(i) = tparams(i).getType(); uninstantiated = Type$List.append(uninstantiated, targs(i)); } @@ -910,3 +910,4 @@ class Infer(global: Global, gen: TreeGen, make: TreeFactory) { } } +} diff --git a/sources/scala/tools/scalac/typechecker/Substituter.scala b/sources/scala/tools/scalac/typechecker/Substituter.scala index 407876c1f8..3ab388f235 100644 --- a/sources/scala/tools/scalac/typechecker/Substituter.scala +++ b/sources/scala/tools/scalac/typechecker/Substituter.scala @@ -6,17 +6,17 @@ // $Id$ -package scala.tools.scalac.typechecker; - -import scalac.Global; +import scalac.{Global => scalac_Global}; import scalac.ApplicationError; import scalac.util._; import scalac.ast._; import scalac.symtab._; +package scala.tools.scalac.typechecker { + // Tree Substitution ------------------------------------------------------------- -class Substituter(global: Global, gen: TreeGen) extends Transformer(global) { +class Substituter(global: scalac_Global, gen: TreeGen) extends Transformer(global) { var tparams: Array[Symbol] = _; var targs: Array[Type] = _; @@ -92,4 +92,4 @@ class Substituter(global: Global, gen: TreeGen) extends Transformer(global) { } } } - +} diff --git a/sources/scala/tools/scalac/util/NewArray.scala b/sources/scala/tools/scalac/util/NewArray.scala index 4066cfab02..4e0f7505dc 100644 --- a/sources/scala/tools/scalac/util/NewArray.scala +++ b/sources/scala/tools/scalac/util/NewArray.scala @@ -6,14 +6,14 @@ // $Id$ -package scala.tools.scalac.util; - import scalac.ast._; import scalac.checkers.Checker; import scalac.symtab.Symbol; import scalac.symtab.Type; import scalac.util.Name; +package scala.tools.scalac.util { + object NewArray { def Tree(xs: Tree*): Array[Tree] = { @@ -106,3 +106,4 @@ object NewArray { arr } } +} diff --git a/sources/scala/tools/scaladoc/Main.scala b/sources/scala/tools/scaladoc/Main.scala index 961a4ae4c1..d75d436290 100644 --- a/sources/scala/tools/scaladoc/Main.scala +++ b/sources/scala/tools/scaladoc/Main.scala @@ -6,11 +6,11 @@ // $Id$ -package scala.tools.scaladoc; - import scalac.Global; import scalac.util.Reporter; +package scala.tools.scaladoc { + /** * The main class for scaladoc, an HTML documentation generator * for the programming language Scala. @@ -39,3 +39,4 @@ object Main { } } +} diff --git a/sources/scala/tools/scalap/AbstractFile.scala b/sources/scala/tools/scalap/AbstractFile.scala index bf959ee2af..6ab11352fb 100644 --- a/sources/scala/tools/scalap/AbstractFile.scala +++ b/sources/scala/tools/scalap/AbstractFile.scala @@ -158,7 +158,7 @@ class JarArchive(f: File) with AbstractFile { Iterator.empty; else if (j < (pref.length() - 1)) { if (files.isDefinedAt(pref.substring(j))) - List(pref).elements; + Predef.List(pref).elements; else Iterator.empty; } else diff --git a/sources/scala/xml/nobinding/Element.scala b/sources/scala/xml/nobinding/Element.scala index 8cca908fbe..71915f334c 100644 --- a/sources/scala/xml/nobinding/Element.scala +++ b/sources/scala/xml/nobinding/Element.scala @@ -2,7 +2,6 @@ package scala.xml.nobinding; import scala.collection.Map ; import scala.collection.immutable.ListMap ; -import scala.xml.{AttributedNode,Node} ; /** an XML node. use this when data binding is not desired. **/ diff --git a/sources/scala/xml/path/Parser.scala b/sources/scala/xml/path/Parser.scala index b675e4396f..88d3271d90 100644 --- a/sources/scala/xml/path/Parser.scala +++ b/sources/scala/xml/path/Parser.scala @@ -44,7 +44,7 @@ class Parser( it:Iterator[char] ) with Scanner( it ) { def conds = token match { case LBRACKET => nextToken; - var cond :List[List[Expression]] = List( expr ); + var cond :List[List[Expression]] = Predef.List( expr ); while( COMMA == token ) { cond = expr :: cond } acc( RBRACKET ); Some( cond.reverse ) diff --git a/sources/scala/xml/path/Scanner.scala b/sources/scala/xml/path/Scanner.scala index 81c251d055..b067efe97d 100644 --- a/sources/scala/xml/path/Scanner.scala +++ b/sources/scala/xml/path/Scanner.scala @@ -39,7 +39,7 @@ class Scanner( it:Iterator[char] ) with Tokens { } def getIdent:String = { - var cs = List(c); + var cs = c :: Nil; next; while ( isIdentChar ) { cs = c::cs; next } cs.foldLeft ("") { (c,s) => s+c } diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java index f4fe0ea044..d98b281e69 100644 --- a/sources/scalac/transformer/Erasure.java +++ b/sources/scalac/transformer/Erasure.java @@ -204,9 +204,10 @@ public class Erasure extends GenTransformer implements Modifiers { case Select(Tree qualifier, _): Symbol symbol = tree.symbol(); Type prefix = qualifier.type().baseType(symbol.owner()).erasure(); - assert prefix != Type.NoType: tree; - qualifier = transform(qualifier); - qualifier = coerce(qualifier, prefix); + qualifier = transform(qualifier); + assert prefix != Type.NoType: qualifier.type() + "/" + qualifier.type().singleDeref() + " basetype " + symbol.owner(); + qualifier = coerce(qualifier, prefix); + // Might end up with "box(unbox(...))". That's needed by backend. if (isUnboxedType(prefix)) qualifier = box(qualifier); return gen.Select(tree.pos, qualifier, symbol); |