Subject: bug#21963: Spurious byte compile message: "Warning: the function `bar' might not be defined at runtime."

From: Alan Mackenzie <[email-masked]>
Date: Fri, 20 Nov 2015 16:15:35 +0000

Hello, John.

On Fri, Nov 20, 2015 at 08:01:31AM -0800, John Wiegley wrote:
> >>>>> Eli Zaretskii <[email-masked]> writes:

> >> (eval-when-compile (require 'warning-bar))
> >> (require 'warning-bar)

> > I think if you leave only the second one, Bob's your uncle.

> I think the question is: Why does haven't the first one cause the definedness
> introduced by the second to not be recognized?

While eval-when-compile'ing the first line, the byte compiler collects a
list of symbols defined by it (in variable
byte-compile-noruntime-functions).  More or less.

There is no mechanism for taking symbols off of that list when they
subsequently become defined.

> John

-- 
Alan Mackenzie (Nuremberg, Germany).