Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#913 closed defect (fixed)

&WHOLE broken in DEFINE-METHOD-COMBINATION

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

Description

Using &WHOLE in the lambda list for the :ARGUMENTS section of the long form of DEFINE-METHOD-COMBINATION results in an UNBOUND-VARIABLE condition. Here's a simple test case:

CL-USER> (define-method-combination test ()
             ((primary () :required t))
           (:arguments &whole whole)
           (format t "this is it: ~A" whole)
           `(call-method ,(first primary) ,(rest primary)))
;Compiler warnings :
;   In an anonymous lambda form: Undeclared free variable #:ARGS
TEST
CL-USER> (defgeneric foo (x)
           (:method-combination test)
           (:method (x) x))
#<STANDARD-GENERIC-FUNCTION FOO #x30200127BC6F>
CL-USER> (foo 3)

You can see the warning when the method combination is defined, then the call results in:

Unbound variable: #:ARGS
   [Condition of type UNBOUND-VARIABLE]

This is on CCL Version 1.8-dev-r15225M-trunk (DarwinX8664)

Change History (3)

comment:1 Changed 7 years ago by pfeilgm

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

Fixed in r15249.

comment:2 Changed 7 years ago by rme

(In [15250]) Fix for broken &whole in define-method-combination from trunk. See ticket:913.

comment:3 Changed 7 years ago by rme

(In [15251]) Merge fix for broken &whole in define-method-combination to 1.7 branch also. See ticket:913.

Note: See TracTickets for help on using tickets.