summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/PatternNode.java
diff options
context:
space:
mode:
authorMatthias Zenger <mzenger@gmail.com>2003-08-28 15:32:44 +0000
committerMatthias Zenger <mzenger@gmail.com>2003-08-28 15:32:44 +0000
commit9ed2cdba696963816b404599ae02b81130000bce (patch)
treeef26025d97c762c721413e5f1d269d85171cee43 /sources/scalac/transformer/matching/PatternNode.java
parent03552d1859caad9c29fcbcdcfe80fa19c24d9cf0 (diff)
downloadscala-9ed2cdba696963816b404599ae02b81130000bce.tar.gz
scala-9ed2cdba696963816b404599ae02b81130000bce.tar.bz2
scala-9ed2cdba696963816b404599ae02b81130000bce.zip
Minor modifications.
Diffstat (limited to 'sources/scalac/transformer/matching/PatternNode.java')
-rw-r--r--sources/scalac/transformer/matching/PatternNode.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/sources/scalac/transformer/matching/PatternNode.java b/sources/scalac/transformer/matching/PatternNode.java
index da028b2a6d..3cd583c5d8 100644
--- a/sources/scalac/transformer/matching/PatternNode.java
+++ b/sources/scalac/transformer/matching/PatternNode.java
@@ -33,6 +33,43 @@ public class PatternNode {
public case VariablePat(Tree tree);
+ public PatternNode dup() {
+ PatternNode res;
+ switch (this) {
+ case Header(Tree selector, Header next):
+ res = Header(selector, next);
+ break;
+ case Body(Tree.ValDef[][] bound, Tree[] guard, Tree[] body):
+ res = Body(bound, guard, body);
+ break;
+ case DefaultPat():
+ res = DefaultPat();
+ break;
+ case ConstrPat(Symbol casted):
+ res = ConstrPat(casted);
+ break;
+ case SequencePat(Symbol casted, int len):
+ res = SequencePat(casted, len);
+ break;
+ case SeqContainerPat(Symbol casted, Tree seqpat):
+ res = SeqContainerPat(casted, seqpat);
+ break;
+ case ConstantPat(Object value):
+ res = ConstantPat(value);
+ break;
+ case VariablePat(Tree tree):
+ res = VariablePat(tree);
+ break;
+ default:
+ throw new ApplicationError();
+ }
+ res.pos = pos;
+ res.type = type;
+ res.or = or;
+ res.and = and;
+ return res;
+ }
+
public Symbol symbol() {
switch (this) {
case ConstrPat(Symbol casted):