diff options
author | BT Templeton <bpt@hcoop.net> | 2011-07-10 17:14:32 -0400 |
---|---|---|
committer | BT Templeton <bpt@hcoop.net> | 2012-02-03 18:53:49 -0500 |
commit | 0a32abc462156f5891cd990ef1f38f8a7915ca22 (patch) | |
tree | f30a16dc0e462088dad932215ac693847204cd7c | |
parent | e5a361d1f9c7ff150ae740abcf66a85467b1deca (diff) | |
download | guile-0a32abc462156f5891cd990ef1f38f8a7915ca22.tar.gz |
remove `flet*' elisp special form
* module/language/elisp/compile-tree-il.scm (compile-flet*): Remove.
* module/language/elisp/runtime/function-slot.scm: Update module
definition.
* test-suite/tests/elisp-compiler.test
("Lambda Expressions")["flet and flet*"]: Remove `flet*' test.
-rw-r--r-- | module/language/elisp/compile-tree-il.scm | 8 | ||||
-rw-r--r-- | module/language/elisp/runtime/function-slot.scm | 2 | ||||
-rw-r--r-- | test-suite/tests/elisp-compiler.test | 5 |
3 files changed, 2 insertions, 13 deletions
diff --git a/module/language/elisp/compile-tree-il.scm b/module/language/elisp/compile-tree-il.scm index 5363fec2c..730e63bb5 100644 --- a/module/language/elisp/compile-tree-il.scm +++ b/module/language/elisp/compile-tree-il.scm @@ -41,7 +41,6 @@ compile-flet compile-let* compile-lexical-let* - compile-flet* compile-guile-ref compile-guile-primitive compile-while @@ -255,7 +254,7 @@ (iterate (cdr tail) lexical (cons (car tail) dynamic)))))) ;;; Compile let and let* expressions. The code here is used both for -;;; let/let* and flet/flet*, just with a different bindings module. +;;; let/let* and flet, just with a different bindings module. ;;; ;;; A special module value 'lexical means that we're doing a lexical-let ;;; instead and the bindings should not be saved to globals at all but @@ -698,11 +697,6 @@ ((,bindings . ,body) (generate-let* loc 'lexical bindings body)))) -(defspecial flet* (loc args) - (pmatch args - ((,bindings . ,body) - (generate-let* loc function-slot bindings body)))) - ;;; guile-ref allows building TreeIL's module references from within ;;; elisp as a way to access data within the Guile universe. The module ;;; and symbol referenced are static values, just like (@ module symbol) diff --git a/module/language/elisp/runtime/function-slot.scm b/module/language/elisp/runtime/function-slot.scm index 80f5d72dd..59fa04da9 100644 --- a/module/language/elisp/runtime/function-slot.scm +++ b/module/language/elisp/runtime/function-slot.scm @@ -32,7 +32,6 @@ (compile-flet . flet) (compile-let* . let*) (compile-lexical-let* . lexical-let*) - (compile-flet* . flet*) (compile-guile-ref . guile-ref) (compile-guile-primitive . guile-primitive) (compile-while . while) @@ -56,7 +55,6 @@ flet let* lexical-let* - flet* guile-ref guile-primitive while diff --git a/test-suite/tests/elisp-compiler.test b/test-suite/tests/elisp-compiler.test index 2074c8d39..345dd68e0 100644 --- a/test-suite/tests/elisp-compiler.test +++ b/test-suite/tests/elisp-compiler.test @@ -413,7 +413,7 @@ (not (fboundp 'a)) (= a 1)))) - (pass-if "flet and flet*" + (pass-if "flet" (progn (defun foobar () 42) (defun test () (foobar)) (and (= (test) 42) @@ -421,9 +421,6 @@ (myfoo (symbol-function 'foobar))) (and (= (myfoo) 42) (= (test) 42))) - (flet* ((foobar (lambda () 0)) - (myfoo (symbol-function 'foobar))) - (= (myfoo) 42)) (flet (foobar) (defun foobar () 0) (= (test) 42)) |