Eu tive um bug em uma das minhas extensões que acabou sendo causado por set
não funcionar como eu esperava:
;; -*- lexical-binding: t -*-
(let ((a nil))
(setq a t)
(print a))
(let ((a nil))
(set 'a t)
(print a))
quando executado com emacs -Q --batch -l temp.el
impressões:
t
nil
Isso me parece muito estranho. Fiquei com a impressão de que (setq a b)
é uma abreviação de (set 'a b)
. O que está acontecendo?