diff --git a/module/language/elisp/compile-tree-il.scm b/module/language/elisp/compile-tree-il.scm index d8deaadd1..1ed0937e9 100644 --- a/module/language/elisp/compile-tree-il.scm +++ b/module/language/elisp/compile-tree-il.scm @@ -841,11 +841,7 @@ (compile-expr (apply macro-function arguments)))) (else (make-application loc - (if (symbol? operator) - (reference-variable loc - operator - function-slot) - (compile-expr operator)) + (compile-expr `(function ,operator)) (map compile-expr arguments)))))) ;;; Compile a symbol expression. This is a variable reference or maybe diff --git a/test-suite/tests/elisp-compiler.test b/test-suite/tests/elisp-compiler.test index 345dd68e0..69595ebd3 100644 --- a/test-suite/tests/elisp-compiler.test +++ b/test-suite/tests/elisp-compiler.test @@ -379,7 +379,7 @@ ((lambda (a b c) c) 1 2 3)) (pass-if-equal "optional argument" 3 - ((function (lambda (a &optional b c) c)) 1 2 3)) + ((lambda (a &optional b c) c) 1 2 3)) (pass-if-equal "optional missing" nil-value ((lambda (&optional a) a)))