From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Bug: buffer local variables handled wrong [9.0.5 (release_9.0.5-497-g5bc540 @ /home/hs/.emacs.d/lib/org-mode/lisp/)] Date: Sun, 04 Jun 2017 11:35:34 +0200 Message-ID: <87wp8sw0wp.fsf@nicolasgoaziou.fr> References: <20170603114859.GE7145@seven> <87a85olrzq.fsf@nicolasgoaziou.fr> <20170604065733.GG7145@seven> <87o9u4nrte.fsf@nicolasgoaziou.fr> <20170604080822.GH7145@seven> <877f0snorq.fsf@nicolasgoaziou.fr> <20170604091819.GI7145@seven> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51994) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dHRwg-0006JL-4A for emacs-orgmode@gnu.org; Sun, 04 Jun 2017 05:35:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dHRwf-0008He-9y for emacs-orgmode@gnu.org; Sun, 04 Jun 2017 05:35:38 -0400 Received: from relay4-d.mail.gandi.net ([2001:4b98:c:538::196]:53067) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dHRwf-0008Fq-3M for emacs-orgmode@gnu.org; Sun, 04 Jun 2017 05:35:37 -0400 In-Reply-To: <20170604091819.GI7145@seven> (Stefan-W. Hahn's message of "Sun, 4 Jun 2017 11:18:19 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: "Stefan-W. Hahn" Cc: emacs-orgmode@gnu.org "Stefan-W. Hahn" writes: > What I don't understand is, if I expand the pcase with (macrostep-expand) I > get the following: > > ,---- > | (let (res) > | (dolist (pair (buffer-local-variables)) > | (if > | (consp pair) > | (let* > | ((x > | (car pair)) > | (x > | (cdr pair))) > | (let > | ((val x) > | (var x)) > | (push > | (list 'set var val) > | res))) > | nil)) > | res) > `---- > > And this is obviously wrong. This is not obviously wrong. You may be thinking that both `x' symbols are the same, but they are not. E.g., (let ((s1 (make-symbol "x")) (s2 (make-symbol "x"))) (list (list s1 s2) (eq s1 s2))) => ((x x) nil) Regards,