Skip to content

FLET setf function #567

@kchanqvq

Description

@kchanqvq

Another root of evil:

CL-USER> (flet (((setf foo) (new-val x) (setf (car x) new-val)))
|         (setf (foo (cons 1 2)) 3))
SIMPLE-ERROR: Unknown generalized reference.
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:43834:7
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:43837:3
    at internals.Symbol.JSCL_USER_ERROR [as fvalue] (/home/kchan/quicklisp/local-projects/jscl/jscl.js:43838:3)
    at JSCL_USER_NIL (/home/kchan/quicklisp/local-projects/jscl/jscl.js:1320:53)
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:1328:13
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:1329:3
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:1330:3
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:1331:3
    at internals.Symbol.JSCL_USER_GETSETFEXPANSION [as fvalue] (/home/kchan/quicklisp/local-projects/jscl/jscl.js:1332:3)
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:60126:9
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:60130:3
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:60131:3
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:60132:3
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:60142:3
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:60143:3
    at JSCL_USER_NIL (/home/kchan/quicklisp/local-projects/jscl/jscl.js:60144:3)
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:37318:42
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:37319:3
    at /home/kchan/quicklisp/local-projects/jscl/jscl.js:37320:3
    at internals.bindSpecialBindings (/home/kchan/quicklisp/local-projects/jscl/jscl.js:388:12)
... 99 more frames, increase JSCL::*BACKTRACE-LIMIT* to view more

In SBCL:

CL-USER> (flet (((setf foo) (new-val x) (setf (car x) new-val)))
        (setf (foo (cons 1 2)) 3))
3

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions