Opened 7 years ago

Closed 5 years ago

Last modified 5 years ago

#1115 closed defect (wontfix)

Potentially bogus scrutinizer warning "expected in `let' binding of `x' a single result, but were given 3 results"

Reported by: Christian Kellermann Owned by:
Priority: major Milestone: 4.11.0
Component: unknown Version: 4.8.x
Keywords: Cc:
Estimated difficulty:

Description

If you try to bind values to a single identifier you will get the above warning:

(let ((x (values 1 2 4))) #f)

That alone isn't surprising as it may be a programmer error but if you use that inside a macro expansion like

(receive (in out pid) (process cmd)
      (display str out)
      (flush-output out)
      (close-output-port out)
      (let ((res
             (base64-encode-string
              (read-string #f in))))
        (process-wait pid)
        res))

As found in hato's code the message is at least puzzling as the programmer doesn't care about the values at all, but the macro gets expanded to a ##core#let which in turn gets under scrutiny.

I am not sure what the correct behaviour should be.

Change History (4)

comment:1 Changed 6 years ago by sjamaan

Milestone: someday4.10.0

We should give this some thought before releasign 4.10.0

comment:2 Changed 5 years ago by sjamaan

Milestone: 4.10.04.11.0

Unsure this is a bug, moving it to 4.11 anyway

comment:3 Changed 5 years ago by sjamaan

Resolution: wontfix
Status: newclosed

Without a clear way to improve the situation, there's not much that we can do with this ticket. Closing it for now, until someone comes up with a proper solution.

comment:4 Changed 5 years ago by Christian Kellermann

Yes, let's do that. Thanks!

Note: See TracTickets for help on using tickets.