diff --git a/t/compiler-inline.lisp b/t/compiler-inline.lisp new file mode 100644 index 000000000..ce81a821d --- /dev/null +++ b/t/compiler-inline.lisp @@ -0,0 +1,14 @@ +;;;; +(unless (ignore-errors (asdf:load-system :fset)) + (ql:quickload :fset)) + +(load + (compile-file + (asdf:system-relative-pathname :abcl "t/eg/inline-labels.lisp"))) + +(prove:plan 1) +(prove:is + (fset-user::foo '(a &rest b)) + '(a fset-user::local-tail b)) +(prove:finalize) + diff --git a/t/eg/inline-labels.lisp b/t/eg/inline-labels.lisp new file mode 100644 index 000000000..55b3a21e9 --- /dev/null +++ b/t/eg/inline-labels.lisp @@ -0,0 +1,9 @@ +(in-package :fset-user) +(defun foo (x) + (labels ((bar (x) + (cond ((null x) nil) + ((eq (car x) '&rest) (tail (cadr x))) + (t (cons (car x) (bar (cdr x)))))) + (tail (x) + (list 'local-tail x))) + (bar x)))