summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-08-02 06:50:28 +0000
committerPaul Phillips <paulp@improving.org>2011-08-02 06:50:28 +0000
commitcf4037a46ca3aabcff8e444d6814f5a91d023d4b (patch)
tree71e124e7c12909149158b57a32cd25792178270e /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parent39e50a12d24e6c143cd1473e579fa197e75318a2 (diff)
downloadscala-cf4037a46ca3aabcff8e444d6814f5a91d023d4b.tar.gz
scala-cf4037a46ca3aabcff8e444d6814f5a91d023d4b.tar.bz2
scala-cf4037a46ca3aabcff8e444d6814f5a91d023d4b.zip
Made error messages like "object List is not a ...
Made error messages like "object List is not a value" be a little more helpful about why that is. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 0385cfee63..e0639cb6cf 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -558,14 +558,16 @@ trait Typers extends Modes with Adaptations {
private def stabilize(tree: Tree, pre: Type, mode: Int, pt: Type): Tree = {
if (tree.symbol.isOverloaded && !inFunMode(mode))
inferExprAlternative(tree, pt)
+
val sym = tree.symbol
+ def fail() = errorTree(tree, sym.kindString + " " + sym.fullName + " is not a value")
if (tree.tpe.isError) tree
else if ((mode & (PATTERNmode | FUNmode)) == PATTERNmode && tree.isTerm) { // (1)
if (sym.isValue) checkStable(tree)
- else errorTree(tree, sym+" is not a value")
+ else fail()
} else if ((mode & (EXPRmode | QUALmode)) == EXPRmode && !sym.isValue && !phase.erasedTypes) { // (2)
- errorTree(tree, sym+" is not a value")
+ fail()
} else {
if (sym.isStable && pre.isStable && !isByNameParamType(tree.tpe) &&
(isStableContext(tree, mode, pt) || sym.isModule && !sym.isMethod))