diff options
-rw-r--r-- | sources/scalac/ast/parser/PatternNormalizer.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sources/scalac/ast/parser/PatternNormalizer.java b/sources/scalac/ast/parser/PatternNormalizer.java index adf8a98b9d..d07ed38aaa 100644 --- a/sources/scalac/ast/parser/PatternNormalizer.java +++ b/sources/scalac/ast/parser/PatternNormalizer.java @@ -147,6 +147,26 @@ public class PatternNormalizer { */ public boolean check( Tree pat ) { this.boundVars = new HashMap(); + + //reject top-level sequence patterns + switch( pat ) { + case Sequence( _ ): + unit.error( pat.pos, + "sequences not allowed here"); + return false; + case Alternative( Tree args[] ): + for( int i = 0; i < args.length; i++ ) + switch( args[i] ) { + case Sequence( _ ): + unit.error( args[i].pos, + "sequences not allowed here"); + return false; + } + } + + + + // reject deep binding if( TreeInfo.isRegularPattern( pat ) ) seqDepth = 0; else |