#485 closed defect (fixed)
Differing &keyword generic method signatures cannot be eval'd
Reported by: | Mark Evenson | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 1.9.0 |
Component: | interpreter | Version: | 1.8.1-dev |
Keywords: | Cc: | ||
Parent Tickets: |
Description
<https://irclog.tymoon.eu/freenode/%23abcl?from=1611187078>
0:12:54 emaczen Is there a setting I can change in ABCL to not care if a method definition does not have all the keyword arguments as another method? 0:13:14 emaczen does not accept all of the keyword arguments defined for the generic function -- This is the ABCL error I am getting 0:13:42 emaczen SBCL and CCL do not care 0:30:42 charles` Is that only for keyword arguments, because SBCL definitely cares if I have different # of parameters for same method name 1:19:18 robertm Maybe you could use &allow-other-keys ? (Just a guess.) 1:53:50 etimmons emaczen: Based on your description and some quick tests I'm guessing you're implicitly defining the generic function with defmethod. Try using an explicit defgeneric. 1:57:24 etimmons It does appear there's a bug in how defmethod defines the lambda list of the implicit defgeneric https://plaster.tymoon.eu/view/2247#2247 2:00:37 etimmons If (fboundp function-name) is nil, a generic function is created [...] the lambda list of the generic function will mention ..... key (but no keyword arguments)
Eval'ing non-congruent forms fails with a simple-error
but compiling seems to work.
Change History (6)
comment:1 Changed 4 years ago by
comment:2 Changed 4 years ago by
Summary: | Non-congruent generic method signatures cannot be eval'd → Differing &keyword generic method signatures cannot be eval'd |
---|
comment:3 Changed 4 years ago by
The following forms will compile as a file unit, but fail when evaluated in a REPL.
(in-package :cl-user) (defmethod test ((a integer) &key b c) (declare (ignore a b c))) (defmethod test ((a real) &key b) (declare (ignore a b)))
comment:5 Changed 3 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed with <https://github.com/armedbear/abcl/commit/1d9020eb80d0e03975a5c89052902811b7aa4c80> aka <https://abcl.org/trac/changeset/15513> thanks to @alejandrozf.
comment:6 Changed 3 years ago by
Milestone: | 1.8.1 → 1.9.0 |
---|
Note: See
TracTickets for help on using
tickets.
jackdaniel schooled easye on #abcl: