summaryrefslogtreecommitdiff
path: root/sources/scalac/typechecker/DeSugarize.java
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-07-13 11:43:08 +0000
committerburaq <buraq@epfl.ch>2003-07-13 11:43:08 +0000
commit3ad0a509fcd5d2befd5ae9d16f7942e04445dae9 (patch)
tree7d22bf097eb24c2a7572dc66e094886b4cfb0f0a /sources/scalac/typechecker/DeSugarize.java
parente31cc564d5ad9a112a258360f98707aed7c3a619 (diff)
downloadscala-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.java17
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) {