summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-06-27 18:23:28 +0000
committerMartin Odersky <odersky@gmail.com>2006-06-27 18:23:28 +0000
commitaabf6ed2abb719fe0b71ba21bbda0c3820821a7a (patch)
tree64a9f94a4e31b346dd156ad1bdd7969c6d26b91a
parent74c681cb2d3e599a899f538c00440bcab19ec5d2 (diff)
downloadscala-aabf6ed2abb719fe0b71ba21bbda0c3820821a7a.tar.gz
scala-aabf6ed2abb719fe0b71ba21bbda0c3820821a7a.tar.bz2
scala-aabf6ed2abb719fe0b71ba21bbda0c3820821a7a.zip
Fixed bug 639; added test files for bug630, bug631
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala4
-rw-r--r--test/files/neg/bug630.check5
-rw-r--r--test/files/neg/bug631.check4
-rw-r--r--test/files/neg/bug639.check9
-rw-r--r--test/files/neg/bug639.scala3
5 files changed, 16 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index bce9133222..14884ecb4f 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -1098,7 +1098,7 @@ trait Typers requires Analyzer {
}
}
case ErrorType =>
- setError(tree)
+ setError(copy.Apply(tree, fun, args))
case _ =>
errorTree(tree, ""+fun+" does not take parameters")
}
@@ -1404,7 +1404,7 @@ trait Typers requires Analyzer {
attrError = true;
null
}
- typed(constr, mode | CONSTmode, AttributeClass.tpe) match {
+ typed(constr, EXPRmode | CONSTmode, AttributeClass.tpe) match {
case Apply(Select(New(tpt), nme.CONSTRUCTOR), args) =>
val constrArgs = args map getConstant
val attrScope = tpt.tpe.decls;
diff --git a/test/files/neg/bug630.check b/test/files/neg/bug630.check
new file mode 100644
index 0000000000..abdd13f321
--- /dev/null
+++ b/test/files/neg/bug630.check
@@ -0,0 +1,5 @@
+bug630.scala:20 error: error overriding value foo in trait Bar of type => Req2;
+ object foo has incompatible type
+ object foo extends Req1
+ ^
+one error found
diff --git a/test/files/neg/bug631.check b/test/files/neg/bug631.check
new file mode 100644
index 0000000000..ba985fab96
--- /dev/null
+++ b/test/files/neg/bug631.check
@@ -0,0 +1,4 @@
+bug631.scala:1 error: `implicit' modifier cannot be used for top-level objects
+implicit object Test {
+ ^
+one error found
diff --git a/test/files/neg/bug639.check b/test/files/neg/bug639.check
index 7458952ce3..4a6f8d1af3 100644
--- a/test/files/neg/bug639.check
+++ b/test/files/neg/bug639.check
@@ -1,9 +1,4 @@
-/home/odersky/scala/test/files/pos/bug639.scala:1 error: not found: value a
+bug639.scala:3 error: not found: value a
import a._
^
-/home/odersky/scala/test/files/pos/bug639.scala:2 error: type mismatch;
- found : B
- required: scala.Attribute
-[B]
- ^
-two errors found
+one error found
diff --git a/test/files/neg/bug639.scala b/test/files/neg/bug639.scala
index 7be0968069..a8416b2b2c 100644
--- a/test/files/neg/bug639.scala
+++ b/test/files/neg/bug639.scala
@@ -1,3 +1,6 @@
+package foo123
+
import a._
+
[B]
class C