diff options
Diffstat (limited to 'sources/scalac/transformer/matching/PatternNode.java')
-rw-r--r-- | sources/scalac/transformer/matching/PatternNode.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sources/scalac/transformer/matching/PatternNode.java b/sources/scalac/transformer/matching/PatternNode.java index 3cd583c5d8..03e73fda97 100644 --- a/sources/scalac/transformer/matching/PatternNode.java +++ b/sources/scalac/transformer/matching/PatternNode.java @@ -14,9 +14,9 @@ import scalac.ast.*; import scalac.symtab.*; import scalac.typechecker.*; -/** intermediary data structure for algebraic matching - */ +/** Intermediate data structure for algebraic matcher + */ public class PatternNode { public int pos = Position.FIRSTPOS; public Type type; @@ -27,11 +27,11 @@ public class PatternNode { public case Body(Tree.ValDef[][] bound, Tree[] guard, Tree[] body); public case DefaultPat(); public case ConstrPat(Symbol casted); - public case SequencePat(Symbol casted, int len); // only used in PatternMatcher - public case SeqContainerPat(Symbol casted, Tree seqpat); // in AlgebraicMatcher public case ConstantPat(Object value); public case VariablePat(Tree tree); - + public case AltPat(Header subheader); + public case SequencePat(Symbol casted, int len); // only used in PatternMatcher + public case SeqContainerPat(Symbol casted, Tree seqpat); // in AlgebraicMatcher public PatternNode dup() { PatternNode res; @@ -60,6 +60,9 @@ public class PatternNode { case VariablePat(Tree tree): res = VariablePat(tree); break; + case AltPat(Header subheader): + res = AltPat(subheader); + break; default: throw new ApplicationError(); } |