diff options
author | Martin Odersky <odersky@gmail.com> | 2006-06-27 18:23:28 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-06-27 18:23:28 +0000 |
commit | aabf6ed2abb719fe0b71ba21bbda0c3820821a7a (patch) | |
tree | 64a9f94a4e31b346dd156ad1bdd7969c6d26b91a | |
parent | 74c681cb2d3e599a899f538c00440bcab19ec5d2 (diff) | |
download | scala-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.scala | 4 | ||||
-rw-r--r-- | test/files/neg/bug630.check | 5 | ||||
-rw-r--r-- | test/files/neg/bug631.check | 4 | ||||
-rw-r--r-- | test/files/neg/bug639.check | 9 | ||||
-rw-r--r-- | test/files/neg/bug639.scala | 3 |
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 |