Subject: bug#38872: 27.0.50; Keywords can be let-bound

From: Eli Zaretskii <[email-masked]>
Date: Fri, 17 Jan 2020 09:47:30 +0200

> From: Andreas Schwab <[email-masked]>
> Date: Thu, 16 Jan 2020 21:06:27 +0100
> Cc: Thibault Polge <[email-masked]>, [email-masked]
> 
> On Jan 16 2020, Stefan Kangas wrote:
> 
> > diff --git a/src/eval.c b/src/eval.c
> > index 4559a0e1f6..9a3f703f40 100644
> > --- a/src/eval.c
> > +++ b/src/eval.c
> > @@ -972,8 +972,11 @@ DEFUN ("let", Flet, Slet, 1, UNEVALLED, 0,
> >        if (!NILP (lexenv) && SYMBOLP (var)
> >  	  && !XSYMBOL (var)->u.s.declared_special
> >  	  && NILP (Fmemq (var, Vinternal_interpreter_environment)))
> > -	/* Lexically bind VAR by adding it to the lexenv alist.  */
> > -	lexenv = Fcons (Fcons (var, tem), lexenv);
> > +	if (XSYMBOL (var)->u.s.trapped_write == SYMBOL_NOWRITE)
> 
> I think that should use the same condition as set_internal, so that (let
> ((:k :k))) still works.

Adding Stefan Monnier to the discussion.  Stefan, any comments on this
issue?

Thanks.