Subject: bug#55491: All completion fragments get added to obarray

From: Lars Ingebrigtsen <[email-masked]>
Date: Tue, 17 May 2022 22:30:23 +0200

JD Smith <[email-masked]> writes:

>  (intern-soft "ohno") <C-M-x> -> nil
>  (ohno <M-TAB>                -> No match
>  (intern-soft "ohno") <C-M-x> -> ohno :(
>
> This has the result that, e.g.:
>
>  (test-completion "ohno" obarray nil) <C-M-x> ; t!  Sigh
>
> will always return t during completion, for any completed fragment.
> For completion systems that complete against obarray
> (e.g. emacs-lisp), this is obviously undesirable.

Completion in emacs-lisp-mode doesn't take unbound variables into
account, I think?  So putting stuff into the obarray shouldn't have much
(if any) noticeable effect.

Where do you see anything undesirable as a result of this?

(This behaviour is still present in Emacs 29.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no