Summary
Potentially bogus scrutinizer warning "expected in `let' binding of `x' a single result, but were given 3 results"
Metadata
- Id: ce74a718df7e0ff6e69b58b08cd34d4fb16049cf
- Trac id: 1115
- Type: defect
- Reporter: ckeen
- Owner:
- Cc:
- Status: closed
- Component: unknown
- Estimated difficulty:
- Resolution: wontfix
- Priority: major
- Milestone: 4.11.0
- Version: 4.8.x
- Changetime: 2015-11-20 14:50:21 UTC
- Created: 2014-04-17 15:33:29 UTC
- Keywords:
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.
Changes and comments
[2014-07-30 09:03:06 UTC] sjamaan changed milestone from someday to 4.10.0
[2014-07-30 09:03:06 UTC] sjamaan wrote:
We should give this some thought before releasign 4.10.0
[2015-08-27 08:45:47 UTC] sjamaan changed milestone from 4.10.0 to 4.11.0
[2015-08-27 08:45:47 UTC] sjamaan wrote:
Unsure this is a bug, moving it to 4.11 anyway
[2015-11-20 14:46:11 UTC] sjamaan changed status from new to closed
[2015-11-20 14:46:11 UTC] sjamaan set resolution to wontfix
[2015-11-20 14:46:11 UTC] sjamaan wrote:
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.
[2015-11-20 14:50:21 UTC] ckeen wrote:
Yes, let's do that. Thanks!