diff options
author | Martin Odersky <odersky@gmail.com> | 2006-10-26 14:42:20 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-10-26 14:42:20 +0000 |
commit | 43949e44b7f2938891919736c2ee54b05c62dfcc (patch) | |
tree | f6093b5bf1dfcde3e2cac17f7ab1e409f2526097 | |
parent | 2738fdc2ed8b0641dcec138eb3ce298b2a11af31 (diff) | |
download | scala-43949e44b7f2938891919736c2ee54b05c62dfcc.tar.gz scala-43949e44b7f2938891919736c2ee54b05c62dfcc.tar.bz2 scala-43949e44b7f2938891919736c2ee54b05c62dfcc.zip |
fixed bug783
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index fc849661a6..8b5cabc8f8 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -336,7 +336,7 @@ trait Typers requires Analyzer { } /** Post-process an identifier or selection node, performing the following: - * (1) Check that non-function pattern expressions are stable + * (1) Check that non-function pattern expressions and case-factories are stable * (2) Check that packages and static modules are not used as values * (3) Turn tree type into stable type if possible and required by context. */ @@ -345,7 +345,8 @@ trait Typers requires Analyzer { inferExprAlternative(tree, pt) val sym = tree.symbol if (tree.tpe.isError) tree - else if ((mode & (PATTERNmode | FUNmode)) == PATTERNmode && tree.isTerm) { // (1) + else if (sym.isCaseFactory || + (mode & (PATTERNmode | FUNmode)) == PATTERNmode && tree.isTerm) { // (1) checkStable(tree) } else if ((mode & (EXPRmode | QUALmode)) == EXPRmode && !sym.isValue) { // (2) errorTree(tree, ""+sym+" is not a value") |