Subject: bug#58557: closed (Re: bug#58148: 29.0.50; Wrong number of arguments in keymap-set--anon-cmacro)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 05 Oct 2023 18:08:03 +0000

Your bug report

#58148: 29.0.50; elisp-completion-at-point don't complete local variables when using setq

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].

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

Subject: Re: bug#58148: 29.0.50; Wrong number of arguments in keymap-set--anon-cmacro
From: Stefan Monnier <[email-masked]>
To: Jens Schmidt <[email-masked]>
Cc: [email-masked], German Pacenza <[email-masked]>, [email-masked], [email-masked], Lars Ingebrigtsen <[email-masked]>, Eli Zaretskii <[email-masked]>
Date: Thu, 05 Oct 2023 14:07:01 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

>> This `t` catches more than errors.  Better replace it with `error`.
> Done plus Eli's comments from that other branch.

Thanks, pushed to `emacs-29`.

> Done.

Thanks, pushed to `master`.

> FWIW, bug#60081 can also be merged into this one. (The other bugs that
> Zehao mentions in her/his last post are either merged already or
> typos/not related to this bug.)

Indeed, hereby closing it as well.

> Technically, I should be able to merge that bug (after having been
> pointed to admin/notes/bugtracker), but is it OK for me (as a "plain
> user") to do so?

Yes (it's easy to undo, in any case if it proves to be a mistake).

        Stefan

Subject: 29.0.50; elisp-completion-at-point don't complete local variables when using setq
From: Disroot <[email-masked]>
To: [email-masked]
Date: Sun, 16 Oct 2022 01:25:28 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

elisp-completion-at-point will not complete local variables when using setq.

Tested with emacs -Q, latest Emacs master

Steps to Reproduce:

Snippet a:
(let (foo foo-foo bar bar-bar)
  (setq foo))
               ^

^ marked cursor position.

When pressing C-M-i (completion-at-point), no local variable completion will be provided.

And I found out it was related with elisp--local-variables and macroexpand-all:

Debug snippet:

Snippet b:

(let ((macroexpand-advice (lambda (expander form &rest args)
                            (condition-case nil
                                (apply expander form args)
                              (error form)
                              ))))
  (unwind-protect
      (progn
        (advice-add 'macroexpand :around macroexpand-advice)
        (macroexpand-all
         '(setq elisp--witness--lisp)))
    (advice-remove 'macroexpand macroexpand-advice)))

Return value in Emacs 29.0.50: 

(signal 'wrong-number-of-arguments
        '(setq 1))

I also tested those two steps on Emacs 28.2, released version 
with emacs -Q,

and with following system-configuration-features:
"ACL GMP GNUTLS JSON LIBXML2 MODULES NOTIFY 
KQUEUE NS PDUMPER THREADS TOOLKIT_SCROLL_BARS ZLIB”

completion-at-point worked normally in Snippet a.

Return value of Snippet b is:

(setq elisp--witness--lisp)
——————————————————————————————————————————— 
In GNU Emacs 29.0.50 (build 1, x86_64-apple-darwin21.6.0, NS
appkit-2113.60 Version 12.6 (Build 21G115)) of 2022-10-15 built on
MacBook-Pro-4.local
Repository revision: 9fcd59a97820e5154e678be8b98fe0cac4e4546e
Repository branch: HEAD
Windowing system distributor 'Apple', version 10.3.2113
System Description:  macOS 12.6

Configured using:
'configure --prefix=/opt/local --disable-silent-rules --without-dbus
--without-gconf --without-libotf --without-m17n-flt --with-libgmp
--with-gnutls --with-json --with-xml2 --with-modules --infodir
/opt/local/share/info/my-emacs --with-sqlite3 --with-webp --with-ns
--with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d
--with-rsvg --with-xwidgets --with-native-compilation 'CFLAGS=-pipe -Os
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -arch
x86_64' 'CPPFLAGS=-I/opt/local/include
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk'
'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath
/opt/local/lib/gcc12 -Wl,-no_pie
-Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
-arch x86_64''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP XIM XWIDGETS ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LC_CTYPE: UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
comp comp-cstr warnings icons subr-x rx cl-seq cl-macs gv cl-extra
help-mode bytecomp byte-compile cconv cl-lib sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads xwidget-internal kqueue cocoa
ns lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 78018 5659)
(symbols 48 7047 0)
(strings 32 19585 2332)
(string-bytes 1 603284)
(vectors 16 16757)
(vector-slots 8 335119 11861)
(floats 8 27 30)
(intervals 56 268 0)
(buffers 1000 11))