diff options
author | buraq <buraq@epfl.ch> | 2003-07-13 11:43:08 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-07-13 11:43:08 +0000 |
commit | 3ad0a509fcd5d2befd5ae9d16f7942e04445dae9 (patch) | |
tree | 7d22bf097eb24c2a7572dc66e094886b4cfb0f0a /sources/scalac/typechecker/DeSugarize.java | |
parent | e31cc564d5ad9a112a258360f98707aed7c3a619 (diff) | |
download | scala-3ad0a509fcd5d2befd5ae9d16f7942e04445dae9.tar.gz scala-3ad0a509fcd5d2befd5ae9d16f7942e04445dae9.tar.bz2 scala-3ad0a509fcd5d2befd5ae9d16f7942e04445dae9.zip |
completed migration. pattern matching works now
Diffstat (limited to 'sources/scalac/typechecker/DeSugarize.java')
-rw-r--r-- | sources/scalac/typechecker/DeSugarize.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sources/scalac/typechecker/DeSugarize.java b/sources/scalac/typechecker/DeSugarize.java index 802180390f..14ad9cc781 100644 --- a/sources/scalac/typechecker/DeSugarize.java +++ b/sources/scalac/typechecker/DeSugarize.java @@ -614,6 +614,23 @@ public class DeSugarize implements Kinds, Modifiers { } } + /** x => x @ _ + * only within sequence patterns, for now. BE + * precondition: name != '_' + */ + + public Tree IdentPattern( Tree tree ) { + switch( tree ) { + case Ident( Name name ): + if( name == Names.WILDCARD ) throw new ApplicationError("nothing to desugarize"); + return make.Bind( tree.pos, + name, + make.Ident( tree.pos, Name.fromString("_") )).setType( tree.type ); + default: + throw new ApplicationError("ident expected"); + } + } + /** f, (syms_1)...(syms_n)T ==> f(ps_1)...(ps_n) */ Tree toApply(Tree tree, Type type) { |