[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
bug#49749: 26.3; 26.3 & 27.2: invalid byte compiler warning in short-circuited or form
Wed, 28 Jul 2021 17:26:24 +0200
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
Pierre Rouleau <firstname.lastname@example.org> 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