Subject: Re: bug#30078: 27.0.50; Use lexical-binding for M-:

From: Eli Zaretskii <[email-masked]>
Date: Sat, 13 Jan 2018 21:37:09 +0200

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Sat, 13 Jan 2018 13:05:58 -0500
> 
>    (let ((foopkg-var t))
>      (foopkg-fun arg1 arg2))
> 
> where foopkg is not yet loaded and foopkg-fun is autoloaded: Emacs will
> only be told that `foopkg-var` is a dynamic-variable once the
> `foopkg-fun` call causes `foopkg` to be loaded, so Emacs will mistakenly
> use lexical scoping for the let binding because at that it still knows
> nothing about `foopkg-var`.

That indeed could be a confusing situation, perhaps we should have a
special form for it, to avoid the confusing/incorrect/unexpected
results.