Opened 7 years ago

Closed 7 years ago

#1018 closed defect (fixed)

congruent lambda-lists

Reported by: pfeilgm Owned by:
Priority: normal Milestone:
Component: ANSI CL Compliance Version: trunk
Keywords: Cc:


CCL currently doesn’t accept the following form:

(defgeneric foo (&key bar &allow-other-keys)
  (:method (&key)

complaining that `Lambda list of method #<STANDARD-METHOD FOO NIL> is incompatible with that of the generic function FOO.`

However, section of the spec says “The use of &allow-other-keys need not be consistent across lambda lists. If &allow-other-keys is mentioned in the lambda list of any applicable method or of the generic function, any keyword arguments may be mentioned in the call to the generic function,” which means that the former example should behave the same as

(defgeneric foo (&key bar &allow-other-keys)
  (:method (&key &allow-other-keys)

which works.

(The cl-num-utils system in Quicklisp fails to load on CCL due to this behavior. And according to the CL Test Grid load failure report, this contributes to 5 other systems in Quicklisp not loading.)

Change History (1)

comment:1 Changed 7 years ago by gb

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

(In [15474]) CONGRUENT-LAMBDA-LISTS-P: if gf's lambda list has &allow-other-keys, don't check explicit keywords. Fixes ticket:1018 in the trunk.

Note: See TracTickets for help on using tickets.