summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Templeton <bpt@hcoop.net>2010-07-22 16:33:53 -0400
committerBrian Templeton <bpt@hcoop.net>2010-08-15 23:02:56 -0400
commit5cfb9034597d7bef5ded56156287066c7cb19f49 (patch)
tree6ca36cfdc2579c123b7e17795602a167adf3d580
parentc9cd4ae8c15541a490e052bbaa89fd424802896d (diff)
downloadguile-5cfb9034597d7bef5ded56156287066c7cb19f49.tar.gz
function's argument can be a symbol
* module/language/elisp/compile-tree-il.scm (compile-function): the form `(function SYMBOL)' evaluates to the functional value of SYMBOL
-rw-r--r--module/language/elisp/compile-tree-il.scm4
1 files changed, 3 insertions, 1 deletions
diff --git a/module/language/elisp/compile-tree-il.scm b/module/language/elisp/compile-tree-il.scm
index bf930156a..84a5af482 100644
--- a/module/language/elisp/compile-tree-il.scm
+++ b/module/language/elisp/compile-tree-il.scm
@@ -823,7 +823,9 @@
(defspecial function (loc args)
(pmatch args
(((lambda ,args . ,body))
- (compile-lambda loc args body))))
+ (compile-lambda loc args body))
+ ((,sym) (guard (symbol? sym))
+ (reference-with-check loc sym function-slot))))
(defspecial defmacro (loc args)
(pmatch args