summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2004-01-20 15:18:52 +0000
committerburaq <buraq@epfl.ch>2004-01-20 15:18:52 +0000
commit2c14e0fd960f0b5a0bf02bc5109a6d179b0e8a75 (patch)
tree89527dec330e138e3874a43b8297e6477706b260
parent350dae616efe1bf5156cf9e8e92f9db73003835f (diff)
downloadscala-2c14e0fd960f0b5a0bf02bc5109a6d179b0e8a75.tar.gz
scala-2c14e0fd960f0b5a0bf02bc5109a6d179b0e8a75.tar.bz2
scala-2c14e0fd960f0b5a0bf02bc5109a6d179b0e8a75.zip
do not allow top-level sequence patterns
-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