summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sources/scalac/ast/parser/PatternNormalizer.java20
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