]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/locals/rewrite/sugar/sugar.factor
Merge branch 'master' of http://factorcode.org/git/factor
[factor.git] / basis / locals / rewrite / sugar / sugar.factor
index c1bde9312ec1d032d78515fc8000f0bdd9255354..a8a12d2614d86c3e353e44e93ca76db7d9e3db76 100755 (executable)
@@ -6,7 +6,7 @@ locals.errors locals.types make quotations sequences vectors
 words ;
 IN: locals.rewrite.sugar
 
-! Step 1: rewrite [| [let [let* [wlet into :> forms, turn
+! Step 1: rewrite [| into :> forms, turn
 ! literals with locals in them into code which constructs
 ! the literal after pushing locals on the stack
 
@@ -73,7 +73,7 @@ M: quotation rewrite-element rewrite-sugar* ;
 
 M: lambda rewrite-element rewrite-sugar* ;
 
-M: binding-form rewrite-element binding-form-in-literal-error ;
+M: let rewrite-element let-form-in-literal-error ;
 
 M: local rewrite-element , ;
 
@@ -104,6 +104,8 @@ M: tuple rewrite-sugar* rewrite-element ;
 
 M: def rewrite-sugar* , ;
 
+M: multi-def rewrite-sugar* locals>> <reversed> [ <def> , ] each ;
+
 M: hashtable rewrite-sugar* rewrite-element ;
 
 M: wrapper rewrite-sugar*
@@ -115,17 +117,5 @@ M: word rewrite-sugar*
 
 M: object rewrite-sugar* , ;
 
-: let-rewrite ( body bindings -- )
-    [ quotation-rewrite % <def> , ] assoc-each
-    quotation-rewrite % ;
-
 M: let rewrite-sugar*
-    [ body>> ] [ bindings>> ] bi let-rewrite ;
-
-M: let* rewrite-sugar*
-    [ body>> ] [ bindings>> ] bi let-rewrite ;
-
-M: wlet rewrite-sugar*
-    [ body>> ] [ bindings>> ] bi
-    [ '[ _ ] ] assoc-map
-    let-rewrite ;
+    body>> quotation-rewrite % ;