GNU bug report logs - #57915
29.0.50; Misleading warning about use of quote in clause of cl-case

Previous Next

Package: emacs;

Reported by: Jonas Bernoulli <jonas <at> bernoul.li>

Date: Sun, 18 Sep 2022 19:36:02 UTC

Severity: normal

Tags: moreinfo

Found in version 29.0.50

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Jonas Bernoulli <jonas <at> bernoul.li>
Cc: Philipp Stephani <phst <at> google.com>, 57915 <at> debbugs.gnu.org
Subject: bug#57915: 29.0.50; Misleading warning about use of quote in clause of cl-case
Date: Mon, 19 Sep 2022 10:32:01 +0200
Jonas Bernoulli <jonas <at> bernoul.li> writes:

> I inherited some code like this:
>
>   (cl-case foo
>     ((quote) ...)
>     ((funcall) ...))
>
> While I probably would not have written it like this, I think it
> makes sense, since (quote ...) looks like ... is being quoted.  Using
> ((quote) ...) make it clear to the human reader that that is not what is
> happening.  Unfortunately the byte-compiler now provides this misleading
> warning:
>
>   Warning: Case (quote) will match ‘quote’.  If that’s intended,
>     write (nil quote) instead.  Otherwise, don’t quote ‘nil’.

[...]

> Could this special case, (quote), be handled differently?  I understand
> we want to catch, pcase-inspired clauses like 'x.  I am not sure we can
> tell the difference between (quote), (quote nil) and 'nil, but it seems
> to me, that if that is not the case, we should avoid the invalid
> recommendation at the cost of not warning about the other, likely
> unintended uses.

Yeah, since there isn't really any other way to express this (or is
there?), we should probably not warn about this construction.

I've added Philipp to the CCs; perhaps he has some comments.




This bug report was last modified 2 years and 304 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.