Opened 7 years ago

Closed 7 years ago

#241 closed defect (fixed)

&rest and &aux can't coexist anymore in lambda lists

Reported by: sboukarev Owned by: ehuelsmann
Priority: major Milestone: 1.1.0
Component: compiler Version:
Keywords: Cc: stassats@…
Parent Tickets:

Description

(compile nil '(lambda (&rest foo &aux x)))
=>
The value FOO is not of type LIST.

And some illegal combinations are accepted:

(compile nil '(lambda (&aux x &rest)))
Treats &rest as a variable. Which is correct in theory, but highly unlikely to be used on purpose.

(compile nil '(lambda (&rest args &optional x)))
(compile nil '(lambda (&key key &optional x)))

Subtickets

Change History (4)

comment:1 Changed 7 years ago by ehuelsmann

(In [14138]) Re #241: Fix cases

(compile nil '(lambda (&rest foo &aux x)))

and (compile nil '(lambda (&aux x &rest)))

Note: Since the other 2 cases mentioned in the ticket are still

open, this commit doesn't actually close it.

comment:2 Changed 7 years ago by sboukarev

  • Cc stassats@… added

Good, now drakma can be compiled again.

comment:3 Changed 7 years ago by ehuelsmann

(In [14146]) Re #241: Add test cases.

comment:4 Changed 7 years ago by ehuelsmann

  • Resolution set to fixed
  • Status changed from new to closed

(In [14147]) Close #241: Fix "part 2": ABCL accepts disallowed lambda list ordering.

Note: Solved by rewriting PARSE-LAMBDA-LIST.

Note: See TracTickets for help on using tickets.