GNU bug report logs -
#31350
27.0; `pcase' message: "Redundant pcase pattern"
Previous Next
Reported by: Drew Adams <drew.adams <at> oracle.com>
Date: Thu, 3 May 2018 00:49:01 UTC
Severity: minor
Tags: fixed, moreinfo
Found in version 27.0
Fixed in version 28.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
Drew Adams <drew.adams <at> oracle.com> writes:
> I'll repeat the request, which is what I think a user
> would like to know:
>
> Can the messaging at least tell you:
> (1) all of a set of clauses that are mutually redundant and
> (2) which one of them will actually be used by the compiled
> code, the others presumably having been pruned?
>
> IOW, what's the actual effect, for users? How does pcase
> deal with the redundancy? Can that at least be documented
> somewhere (maybe it is already)?
I think you make an error in reasoning: we don't have mutual redundancy
here. A case can be redundant when it will never match because whenever
would match, a previous case in the cases list always matches, so it is
effectively shadowed. But this is not symmetric (cases are always tried
from first to last (!), and e.g. a `_' catchall pattern in one case will
make all following cases redundant, but not the other way round).
I think the message is more like a warning that a case can never match,
and in all cases where this happened to me, as also in your case, the
reason was a very obvious editing mistake. I don't think there is much
to say here, Emacs just tells you: this case here will never be used,
look what you have done wrong. There is a problem with your code
whenever you see that message. And there is nothing to say about the
semantics as well.
BTW, I think the implementation only covers the most obvious and
simplistic cases, like those involving catchall patterns or duplicated
patterns.
Michael.
This bug report was last modified 4 years and 222 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.