diff options
author | Paul Phillips <paulp@improving.org> | 2011-08-02 06:50:28 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-08-02 06:50:28 +0000 |
commit | cf4037a46ca3aabcff8e444d6814f5a91d023d4b (patch) | |
tree | 71e124e7c12909149158b57a32cd25792178270e /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 39e50a12d24e6c143cd1473e579fa197e75318a2 (diff) | |
download | scala-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.scala | 6 |
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)) |