Subject: bug#8647: since lexical merge, declare-function in subr.el no longer works

From: Stefan Monnier <[email-masked]>
Date: Wed, 11 May 2011 22:02:49 -0300

> IMO, conceptually the right fix is for an element in
> byte-compile-initial-macro-environment to _always_ take precedence
> during compilation, even if the file being compiled contains a
> redefinition.

Agreed.
Another way to get that result is to change the place where we add
elements to byte-compile-macro-environment (so as not to add it if it's
in byte-compile-initial-macro-environment), but the one you showed
seems fine.  Feel free to install it.

        Stefan