GNU bug report logs - #14883
warning about unused returned value from some ert shoulds

Previous Next

Package: emacs;

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

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#14883: closed (warning about unused returned value from some
 ert shoulds)
Date: Thu, 05 Sep 2013 03:07:02 +0000
[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)]
From: Glenn Morris <rgm <at> gnu.org>
To: submit <at> debbugs.gnu.org
Subject: warning about unused returned value from some ert shoulds
Date: Tue, 16 Jul 2013 16:17:05 -0400
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)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 14883-done <at> debbugs.gnu.org
Subject: Re: bug#14883: warning about unused returned value from some ert
 shoulds
Date: Wed, 04 Sep 2013 23:06:38 -0400
> 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.