Unhelpful error on malformed macrolet

Bug #1395952 reported by James Kalenius
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

Macrolet and symbol-macrolet forms with invalid definitions give you a slightly weird error:

(macrolet (foo () 'bar) nil) => The value FOO is not of type LIST.

Contrast with flet: (flet (foo () 'bar) nil) => The FLET definition spec FOO is malformed.

Throwing (loop for def in definitions unless (listp def) do (compiler-error "The definition spec ~s is malformed." def)) into src/compiler/ir1-translators.lisp#%funcall-in-foomacrolet-lexenv could be some kind of improvement. Saying whether it's macrolet or symbol-macrolet would require some more information being passed down, like FLET and LABELS end up doing.

sbcl --version => SBCL 1.1.14.debian, but it's still in git sources too.

Revision history for this message
Stas Boukarev (stassats) wrote :

In 755b72090b05d82f2a8c8f6ad1de5c3ddb160d75

Changed in sbcl:
status: New → Fix Committed
Stas Boukarev (stassats)
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.