Subject: bug#61579: closed (Re: bug#61579: master branch: Byte compilation: Warning messages inside eval-and-compile lose their positions.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 17 Feb 2023 17:39:02 +0000

Your bug report

#61579: master branch: Byte compilation: Warning messages inside eval-and-compile lose their positions.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
61579: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61579
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#61579: master branch: Byte compilation: Warning messages inside eval-and-compile lose their positions.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Fri, 17 Feb 2023 17:37:55 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Emacs.

This bug has been fixed in the master branch.

On Fri, Feb 17, 2023 at 17:08:56 +0000, Alan Mackenzie wrote:
> In buffer *scratch*, enter the following:

> (eval-and-compile
>   (defvar foo "foo")
>   (make-variable-buffer-local 'foo))

> ..  With point inside that form, do M-x compile-defun.  This causes these
> warnings in *Compile-Log*:

>   Buffer *scratch*:4:2: Warning: global/dynamic var `foo' lacks a prefix
>   Buffer *scratch*:4:2: Warning: `make-variable-buffer-local' not called at
>           toplevel

> ..  The position 4:2 is the position of eval-and-compile, not the correct
> positions of the two warning messages.  This is a bug.

> [Side note: When eval-and-compile is replaced by eval-when-compile,
> correct warning positions are generated thus:

>   Buffer *scratch*:5:11: Warning: global/dynamic var `foo' lacks a prefix
>   Buffer *scratch*:6:4: Warning: `make-variable-buffer-local' not called at
>           toplevel

> ..]

-- 
Alan Mackenzie (Nuremberg, Germany).

Subject: master branch: Byte compilation: Warning messages inside eval-and-compile lose their positions.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Fri, 17 Feb 2023 17:08:56 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Emacs.

In buffer *scratch*, enter the following:

(eval-and-compile
  (defvar foo "foo")
  (make-variable-buffer-local 'foo))

..  With point inside that form, do M-x compile-defun.  This causes these
warnings in *Compile-Log*:

  Buffer *scratch*:4:2: Warning: global/dynamic var `foo' lacks a prefix
  Buffer *scratch*:4:2: Warning: `make-variable-buffer-local' not called at
          toplevel

..  The position 4:2 is the position of eval-and-compile, not the correct
positions of the two warning messages.  This is a bug.

[Side note: When eval-and-compile is replaced by eval-when-compile,
correct warning positions are generated thus:

  Buffer *scratch*:5:11: Warning: global/dynamic var `foo' lacks a prefix
  Buffer *scratch*:6:4: Warning: `make-variable-buffer-local' not called at
          toplevel

..]

-- 
Alan Mackenzie (Nuremberg, Germany).