summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--sources/scala/concurrent/MailBox.scala2
-rw-r--r--sources/scala/concurrent/pilib.scala2
-rw-r--r--sources/scala/tools/scalac/CompilerPhases.scala7
-rw-r--r--sources/scala/tools/scalac/Global.scala10
-rw-r--r--sources/scala/tools/scalac/Main.scala5
-rw-r--r--sources/scala/tools/scalac/ast/TreeList.scala5
-rw-r--r--sources/scala/tools/scalac/ast/parser/Parser.scala70
-rw-r--r--sources/scala/tools/scalac/ast/parser/ParserPhase.scala9
-rw-r--r--sources/scala/tools/scalac/ast/parser/Scanner.scala13
-rw-r--r--sources/scala/tools/scalac/ast/parser/TokenData.scala5
-rw-r--r--sources/scala/tools/scalac/ast/printer/HTMLPrinter.scala7
-rw-r--r--sources/scala/tools/scalac/ast/printer/TextTreePrinter.scala29
-rw-r--r--sources/scala/tools/scalac/typechecker/Analyzer.scala13
-rw-r--r--sources/scala/tools/scalac/typechecker/AnalyzerPhase.scala14
-rw-r--r--sources/scala/tools/scalac/typechecker/ConstantFolder.scala11
-rw-r--r--sources/scala/tools/scalac/typechecker/Context.scala7
-rw-r--r--sources/scala/tools/scalac/typechecker/DeSugarize.scala10
-rw-r--r--sources/scala/tools/scalac/typechecker/ImportList.scala5
-rw-r--r--sources/scala/tools/scalac/typechecker/Infer.scala17
-rw-r--r--sources/scala/tools/scalac/typechecker/Substituter.scala10
-rw-r--r--sources/scala/tools/scalac/util/NewArray.scala5
-rw-r--r--sources/scala/tools/scaladoc/Main.scala5
-rw-r--r--sources/scala/tools/scalap/AbstractFile.scala2
-rw-r--r--sources/scala/xml/nobinding/Element.scala1
-rw-r--r--sources/scala/xml/path/Parser.scala2
-rw-r--r--sources/scala/xml/path/Scanner.scala2
-rw-r--r--sources/scalac/transformer/Erasure.java7
-rw-r--r--test/files/pos/scoping1.scala8
-rw-r--r--test/pos/scoping1.scala8
30 files changed, 155 insertions, 138 deletions
diff --git a/Makefile b/Makefile
index 1018c6c634..b17a8fa310 100644
--- a/Makefile
+++ b/Makefile
@@ -176,7 +176,7 @@ all : system
all : interpreter
all : scaladoc
all : scalap
-all : dtd2scala
+#all : dtd2scala
all : scalac4ant
all : scalatest
all : library-doc
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);
diff --git a/test/files/pos/scoping1.scala b/test/files/pos/scoping1.scala
index 8bd443fd21..7164b0cd28 100644
--- a/test/files/pos/scoping1.scala
+++ b/test/files/pos/scoping1.scala
@@ -1,8 +1,12 @@
-object This {
+object This with Executable {
trait A {
def foo(): unit;
}
class C: A {
- def bar() = foo();
+ def bar() = this.foo();
}
+ class D extends C with A {
+ def foo() = ()
+ }
+ val c: C = new D;
}
diff --git a/test/pos/scoping1.scala b/test/pos/scoping1.scala
index 8bd443fd21..7164b0cd28 100644
--- a/test/pos/scoping1.scala
+++ b/test/pos/scoping1.scala
@@ -1,8 +1,12 @@
-object This {
+object This with Executable {
trait A {
def foo(): unit;
}
class C: A {
- def bar() = foo();
+ def bar() = this.foo();
}
+ class D extends C with A {
+ def foo() = ()
+ }
+ val c: C = new D;
}