summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-02-14 16:53:48 +0000
committerMartin Odersky <odersky@gmail.com>2005-02-14 16:53:48 +0000
commit4f59c83f138487121c611cd904e4d910157b99a9 (patch)
tree68b10dc51db4baa6d40f1288234a14878746e721 /sources
parent5dfd488748730f70934d98b747ffbab0159c6eda (diff)
downloadscala-4f59c83f138487121c611cd904e4d910157b99a9.tar.gz
scala-4f59c83f138487121c611cd904e4d910157b99a9.tar.bz2
scala-4f59c83f138487121c611cd904e4d910157b99a9.zip
*** empty log message ***
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/Predef.scala69
-rw-r--r--sources/scala/tools/nsc/ast/parser/Lexical.scala1
-rw-r--r--sources/scala/tools/nsc/ast/parser/Tokens.scala1
-rwxr-xr-xsources/scala/tools/nsc/symtab/Definitions.scala2
-rwxr-xr-xsources/scala/tools/nsc/symtab/classfile/ClassfileParser.scala6
-rwxr-xr-xsources/scala/tools/nsc/symtab/classfile/MetaParser.scala1
-rw-r--r--sources/scala/tools/scalac/ast/parser/MarkupParser.scala2
-rwxr-xr-xsources/scala/tools/scalac/typechecker/RefCheck.scala12
8 files changed, 45 insertions, 49 deletions
diff --git a/sources/scala/Predef.scala b/sources/scala/Predef.scala
index c8eec04235..938b27a59b 100644
--- a/sources/scala/Predef.scala
+++ b/sources/scala/Predef.scala
@@ -53,13 +53,14 @@ object Predef {
* @param xs the elements to put in the array
* @return the array containing elements xs.
*/
- def Array[A](xs: A*): Array[A] = {
+/*
+ def Array[A](xs: A*): Array[A] = {
val array = new Array[A](xs.length);
var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
-/*
+*/
def Array[A <: AnyRef](xs: A*): Array[A] = {
val array = new Array[A](xs.length);
var i = 0;
@@ -67,63 +68,61 @@ object Predef {
array;
}
- def Array(x: boolean, xs: boolean*): Array[boolean] = {
- val array = new Array[boolean](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: boolean*): Array[boolean] = {
+ val array = new Array[boolean](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
- def Array(x: byte, xs: byte*): Array[byte] = {
- val array = new Array[byte](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: byte*): Array[byte] = {
+ val array = new Array[byte](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
- def Array(x: short, xs: short*): Array[short] = {
- val array = new Array[short](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: short*): Array[short] = {
+ val array = new Array[short](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
- def Array(x: char, xs: char*): Array[char] = {
- val array = new Array[char](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: char*): Array[char] = {
+ val array = new Array[char](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
- def Array(x: int, xs: int*): Array[int] = {
- val array = new Array[int](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: int*): Array[int] = {
+ val array = new Array[int](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
- def Array(x: long, xs: long*): Array[long] = {
- val array = new Array[long](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: long*): Array[long] = {
+ val array = new Array[long](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
- def Array(x: float, xs: float*): Array[float] = {
- val array = new Array[float](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: float*): Array[float] = {
+ val array = new Array[float](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
- def Array(x: double, xs: double*): Array[double] = {
- val array = new Array[double](xs.length + 1);
- array(0) = x;
- var i = 1;
+ def Array(xs: double*): Array[double] = {
+ val array = new Array[double](xs.length);
+ var i = 0;
for (val x <- xs.elements) { array(i) = x; i = i + 1; }
array;
}
-*/
+ def Array(xs: unit*): Array[unit] = {
+ val array = new Array[unit](xs.length);
+ var i = 0;
+ for (val x <- xs.elements) { array(i) = x; i = i + 1; }
+ array;
+ }
+
// errors and asserts -------------------------------------------------
def error(message: String): All = throw new Error(message);
diff --git a/sources/scala/tools/nsc/ast/parser/Lexical.scala b/sources/scala/tools/nsc/ast/parser/Lexical.scala
index b3d12948c5..0daa68febe 100644
--- a/sources/scala/tools/nsc/ast/parser/Lexical.scala
+++ b/sources/scala/tools/nsc/ast/parser/Lexical.scala
@@ -753,7 +753,6 @@ abstract class Lexical: ParserPhase {
enterKeyword("<-", LARROW);
enterKeyword("<:", SUBTYPE);
enterKeyword(">:", SUPERTYPE);
- enterKeyword("<%", VIEWBOUND);
enterKeyword("#", HASH);
enterKeyword("@", AT);
diff --git a/sources/scala/tools/nsc/ast/parser/Tokens.scala b/sources/scala/tools/nsc/ast/parser/Tokens.scala
index 8f3247acd3..682e12581d 100644
--- a/sources/scala/tools/nsc/ast/parser/Tokens.scala
+++ b/sources/scala/tools/nsc/ast/parser/Tokens.scala
@@ -73,7 +73,6 @@ object Tokens {
val SUPERTYPE = 70;
val HASH = 71;
val AT = 72;
- val VIEWBOUND = 73;
/** parenthesis */
val LPAREN = 90;
diff --git a/sources/scala/tools/nsc/symtab/Definitions.scala b/sources/scala/tools/nsc/symtab/Definitions.scala
index 205ada1bf4..f9b4be936e 100755
--- a/sources/scala/tools/nsc/symtab/Definitions.scala
+++ b/sources/scala/tools/nsc/symtab/Definitions.scala
@@ -122,7 +122,7 @@ abstract class Definitions: SymbolTable {
private def newTypeParam(owner: Symbol, index: int): Symbol =
owner.newTypeParameter(Position.NOPOS, "T" + index)
- .setInfo(TypeBounds(AllClass.tpe, AnyClass.tpe, AnyClass.tpe));
+ .setInfo(TypeBounds(AllClass.tpe, AnyClass.tpe));
def init = {
RootClass =
diff --git a/sources/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/sources/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index 3964a18427..08a909c781 100755
--- a/sources/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/sources/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -367,8 +367,8 @@ abstract class ClassfileParser {
private def getScope(flags: int): Scope =
if ((flags & JAVA_ACC_STATIC) != 0) staticMembers else classMembers;
- private def transFlags(flags: int): int = {
- var res = 0;
+ private def transFlags(flags: int): long = {
+ var res = 0l;
if ((flags & JAVA_ACC_PRIVATE) != 0)
res = res | PRIVATE
else if ((flags & JAVA_ACC_PROTECTED) != 0)
@@ -380,7 +380,7 @@ abstract class ClassfileParser {
if ((flags & JAVA_ACC_FINAL) != 0)
res = res | FINAL;
if ((flags & JAVA_ACC_INTERFACE) != 0)
- res = res | TRAIT | ABSTRACT;
+ res = res | TRAIT | INTERFACE | ABSTRACT;
if ((flags & JAVA_ACC_SYNTHETIC) != 0)
res = res | SYNTHETIC;
res | JAVA;
diff --git a/sources/scala/tools/nsc/symtab/classfile/MetaParser.scala b/sources/scala/tools/nsc/symtab/classfile/MetaParser.scala
index dfa8804bf7..861fa7d853 100755
--- a/sources/scala/tools/nsc/symtab/classfile/MetaParser.scala
+++ b/sources/scala/tools/nsc/symtab/classfile/MetaParser.scala
@@ -66,7 +66,6 @@ abstract class MetaParser{
.setFlag(vflag)
.setInfo(TypeBounds(
definitions.AllClass.tpe,
- definitions.AnyClass.tpe,
definitions.AnyClass.tpe));
locals enter sym;
nextToken();
diff --git a/sources/scala/tools/scalac/ast/parser/MarkupParser.scala b/sources/scala/tools/scalac/ast/parser/MarkupParser.scala
index e5b721577c..f46d0d7a3c 100644
--- a/sources/scala/tools/scalac/ast/parser/MarkupParser.scala
+++ b/sources/scala/tools/scalac/ast/parser/MarkupParser.scala
@@ -197,7 +197,7 @@ class MarkupParser(unit: CompilationUnit, s: Scanner, p: Parser, presWS: boolean
}
nextch;
}
- new String( Predef.Array[char]( i.asInstanceOf[char] ))
+ new String(Predef.Array(i.asInstanceOf[char]))
}
/** Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
*
diff --git a/sources/scala/tools/scalac/typechecker/RefCheck.scala b/sources/scala/tools/scalac/typechecker/RefCheck.scala
index dbb7b83d21..52733ed965 100755
--- a/sources/scala/tools/scalac/typechecker/RefCheck.scala
+++ b/sources/scala/tools/scalac/typechecker/RefCheck.scala
@@ -968,12 +968,12 @@ class RefCheck(globl: scalac.Global) extends Transformer(globl) {
if (tree.isType()) {
val resultType = tree.getType().deconst();
val resultArgs = resultType.typeArgs();
- if (resultType.symbol() == defs.ARRAY_CLASS &&
- resultArgs.length == 1 &&
- resultArgs(0).symbol() == defs.ANY_CLASS)
- {
- //unit.warning(tree.pos, "Array[Any] not supported");
- }
+ if (resultType.symbol() == defs.ARRAY_CLASS && resultArgs.length == 1) {
+ if (resultArgs(0).symbol() == defs.ANY_CLASS)
+ unit.error(tree.pos, "Array[Any] not supported");
+ else if (resultArgs(0).symbol() == defs.ANYVAL_CLASS)
+ unit.error(tree.pos, "Array[AnyVal] not supported");
+ }
gen.mkType(tree.pos, resultType);
} else tree;