diff options
author | Matthias Zenger <mzenger@gmail.com> | 2003-08-28 15:32:44 +0000 |
---|---|---|
committer | Matthias Zenger <mzenger@gmail.com> | 2003-08-28 15:32:44 +0000 |
commit | 9ed2cdba696963816b404599ae02b81130000bce (patch) | |
tree | ef26025d97c762c721413e5f1d269d85171cee43 /sources/scalac/transformer/matching/PatternNode.java | |
parent | 03552d1859caad9c29fcbcdcfe80fa19c24d9cf0 (diff) | |
download | scala-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.java | 37 |
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): |