GNU bug report logs -
#14883
warning about unused returned value from some ert shoulds
Previous Next
Reported by: Glenn Morris <rgm <at> gnu.org>
Date: Tue, 16 Jul 2013 20:18:01 UTC
Severity: minor
Found in version 24.3
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Wed, 04 Sep 2013 23:06:38 -0400
with message-id <jwv38pk3r39.fsf-monnier+bug#14883 <at> gnu.org>
and subject line Re: bug#14883: warning about unused returned value from some ert shoulds
has caused the debbugs.gnu.org bug report #14883,
regarding warning about unused returned value from some ert shoulds
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
14883: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14883
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Package: emacs
Version: 24.3
Severity: minor
Compiling a file with contents:
;; -*- lexical-binding: t; -*-
(require 'ert)
(require 'cl-lib)
(defvar foo-test 1)
(should foo-test)
(cl-assert foo-test)
results in a warning (for some reason, only when lexical-binding is t):
foo.el:5:1:Warning: value returned from (car value-94600) is unused
The warning is from the `should'. Obviously it is a bogus warning
because the whole point of the should is to test the return value.
The similar cl-assert does not trigger a warning, because internally
cl-assert is written differently.
This is the same issue as http://debbugs.gnu.org/10969, for what is now
cl-pop.
byte-optimize-form-code-walker has special handling for the standard
`pop' macro so as not to warn about unused return values from (pop foo).
It would be nice if there was a general way to get the same result for
arbitrary macros (sort of the opposite of side-effect-free?), but I
don't see how.
[Message part 3 (message/rfc822, inline)]
> Compiling a file with contents:
> ;; -*- lexical-binding: t; -*-
> (require 'ert)
> (require 'cl-lib)
> (defvar foo-test 1)
> (should foo-test)
> (cl-assert foo-test)
> results in a warning (for some reason, only when lexical-binding is t):
> foo.el:5:1:Warning: value returned from (car value-94600) is unused
This `car' came from the closure conversion. I believe it is now fixed
in the trunk. Thank you.
Stefan
This bug report was last modified 11 years and 266 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.