[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#49749: 26.3; 26.3 & 27.2: invalid byte compiler warning in short-cir
From: |
Lars Ingebrigtsen |
Subject: |
bug#49749: 26.3; 26.3 & 27.2: invalid byte compiler warning in short-circuited or form |
Date: |
Wed, 28 Jul 2021 17:26:24 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Pierre Rouleau <prouleau001@gmail.com> writes:
> (defun f-or ()
> "Use or."
> (when (or (null (boundp 'foo))
> (null foo)) ;=> ``Warning: reference to free variable ‘foo’``
>
> (message "foo is not set")))
The message about invalid stuff is only discarded if Emacs is trivially
able to deduce that it'll never be evaluated -- and as you've found out,
it's easy to make that heuristic not be heeded (see
`byte-compile-maybe-guarded' for details).
So I'm not sure this is a bug -- Emacs can't determine all cases where
we won't be executing the code in question at compile time.
Anybody else think that this is something that should be improved?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no