diff options
author | Paul Phillips <paulp@improving.org> | 2012-04-05 12:44:29 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-04-05 13:19:34 -0700 |
commit | 62acd249052f889e9519213fa91bcf212429bc8e (patch) | |
tree | 68ac1888f2bf52aa7a48ef7c1cbe9d53ff5128c7 /src | |
parent | 37eabf615afe3de9733ea41cc9c522df3e2a6b87 (diff) | |
download | scala-62acd249052f889e9519213fa91bcf212429bc8e.tar.gz scala-62acd249052f889e9519213fa91bcf212429bc8e.tar.bz2 scala-62acd249052f889e9519213fa91bcf212429bc8e.zip |
Fix for continuations issue with match blocks.
Don't type pattern trees with annotations still attached.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 09fb39125e..36c81b09cd 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -2089,7 +2089,10 @@ trait Typers extends Modes with Adaptations with PatMatVirtualiser { for (Apply(_, xs) <- cdef.pat ; x <- xs dropRight 1 ; if treeInfo isStar x) StarPositionInPatternError(x) - val pat1 = typedPattern(cdef.pat, pattpe) + // withoutAnnotations - see continuations-run/z1673.scala + // This adjustment is awfully specific to continuations, but AFAICS the + // whole AnnotationChecker framework is. + val pat1 = typedPattern(cdef.pat, pattpe.withoutAnnotations) // When case classes have more than two parameter lists, the pattern ends // up typed as a method. We only pattern match on the first parameter // list, so substitute the final result type of the method, i.e. the type |