summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBT Templeton <bpt@hcoop.net>2011-07-10 17:14:32 -0400
committerBT Templeton <bpt@hcoop.net>2012-02-03 18:53:49 -0500
commit0a32abc462156f5891cd990ef1f38f8a7915ca22 (patch)
treef30a16dc0e462088dad932215ac693847204cd7c
parente5a361d1f9c7ff150ae740abcf66a85467b1deca (diff)
downloadguile-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.scm8
-rw-r--r--module/language/elisp/runtime/function-slot.scm2
-rw-r--r--test-suite/tests/elisp-compiler.test5
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))