all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#57915: 29.0.50; Misleading warning about use of quote in clause of cl-case
@ 2022-09-18 19:35 Jonas Bernoulli
  2022-09-19  8:32 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: Jonas Bernoulli @ 2022-09-18 19:35 UTC (permalink / raw)
  To: 57915

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’.

This is misleading because the conditions (quote) and (nil quote) are
not equivalent; obviously the first only matches `quote', while second
also matches nil.  I have seen this exact warning for a few other
packages and fear that someone might blindly follow the suggestion.

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.

    Cheers,
    Jonas





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-09-19 18:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-18 19:35 bug#57915: 29.0.50; Misleading warning about use of quote in clause of cl-case Jonas Bernoulli
2022-09-19  8:32 ` Lars Ingebrigtsen
2022-09-19 11:38   ` Philipp Stephani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-19 18:42     ` Lars Ingebrigtsen

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.