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

From: Andreas Schwab <[email-masked]>
Date: Thu, 16 Jan 2020 21:06:27 +0100

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.

Andreas.

-- 
Andreas Schwab, [email-masked]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."