From aabf6ed2abb719fe0b71ba21bbda0c3820821a7a Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Tue, 27 Jun 2006 18:23:28 +0000 Subject: Fixed bug 639; added test files for bug630, bug631 --- src/compiler/scala/tools/nsc/typechecker/Typers.scala | 4 ++-- test/files/neg/bug630.check | 5 +++++ test/files/neg/bug631.check | 4 ++++ test/files/neg/bug639.check | 9 ++------- test/files/neg/bug639.scala | 3 +++ 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 test/files/neg/bug630.check create mode 100644 test/files/neg/bug631.check 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 -- cgit v1.2.3