mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 14:50:19 +02:00
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.
This commit is contained in:
parent
e5a361d1f9
commit
0a32abc462
3 changed files with 2 additions and 13 deletions
|
@ -41,7 +41,6 @@
|
||||||
compile-flet
|
compile-flet
|
||||||
compile-let*
|
compile-let*
|
||||||
compile-lexical-let*
|
compile-lexical-let*
|
||||||
compile-flet*
|
|
||||||
compile-guile-ref
|
compile-guile-ref
|
||||||
compile-guile-primitive
|
compile-guile-primitive
|
||||||
compile-while
|
compile-while
|
||||||
|
@ -255,7 +254,7 @@
|
||||||
(iterate (cdr tail) lexical (cons (car tail) dynamic))))))
|
(iterate (cdr tail) lexical (cons (car tail) dynamic))))))
|
||||||
|
|
||||||
;;; Compile let and let* expressions. The code here is used both for
|
;;; 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
|
;;; 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
|
;;; instead and the bindings should not be saved to globals at all but
|
||||||
|
@ -698,11 +697,6 @@
|
||||||
((,bindings . ,body)
|
((,bindings . ,body)
|
||||||
(generate-let* loc 'lexical 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
|
;;; guile-ref allows building TreeIL's module references from within
|
||||||
;;; elisp as a way to access data within the Guile universe. The module
|
;;; elisp as a way to access data within the Guile universe. The module
|
||||||
;;; and symbol referenced are static values, just like (@ module symbol)
|
;;; and symbol referenced are static values, just like (@ module symbol)
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
(compile-flet . flet)
|
(compile-flet . flet)
|
||||||
(compile-let* . let*)
|
(compile-let* . let*)
|
||||||
(compile-lexical-let* . lexical-let*)
|
(compile-lexical-let* . lexical-let*)
|
||||||
(compile-flet* . flet*)
|
|
||||||
(compile-guile-ref . guile-ref)
|
(compile-guile-ref . guile-ref)
|
||||||
(compile-guile-primitive . guile-primitive)
|
(compile-guile-primitive . guile-primitive)
|
||||||
(compile-while . while)
|
(compile-while . while)
|
||||||
|
@ -56,7 +55,6 @@
|
||||||
flet
|
flet
|
||||||
let*
|
let*
|
||||||
lexical-let*
|
lexical-let*
|
||||||
flet*
|
|
||||||
guile-ref
|
guile-ref
|
||||||
guile-primitive
|
guile-primitive
|
||||||
while
|
while
|
||||||
|
|
|
@ -413,7 +413,7 @@
|
||||||
(not (fboundp 'a))
|
(not (fboundp 'a))
|
||||||
(= a 1))))
|
(= a 1))))
|
||||||
|
|
||||||
(pass-if "flet and flet*"
|
(pass-if "flet"
|
||||||
(progn (defun foobar () 42)
|
(progn (defun foobar () 42)
|
||||||
(defun test () (foobar))
|
(defun test () (foobar))
|
||||||
(and (= (test) 42)
|
(and (= (test) 42)
|
||||||
|
@ -421,9 +421,6 @@
|
||||||
(myfoo (symbol-function 'foobar)))
|
(myfoo (symbol-function 'foobar)))
|
||||||
(and (= (myfoo) 42)
|
(and (= (myfoo) 42)
|
||||||
(= (test) 42)))
|
(= (test) 42)))
|
||||||
(flet* ((foobar (lambda () 0))
|
|
||||||
(myfoo (symbol-function 'foobar)))
|
|
||||||
(= (myfoo) 42))
|
|
||||||
(flet (foobar)
|
(flet (foobar)
|
||||||
(defun foobar () 0)
|
(defun foobar () 0)
|
||||||
(= (test) 42))
|
(= (test) 42))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue