Subject: bug#55205: 28.1.50; completion--replace illegally mutates completion candidates

From: Eli Zaretskii <[email-masked]>
Date: Mon, 02 May 2022 19:47:03 +0300

> Date: Mon, 2 May 2022 18:38:37 +0200
> Cc: [email-masked], [email-masked]
> From: Daniel Mendler <[email-masked]>
> 
> One should add that *by definition* of the completion API, mutations of
> the supplied candidate strings don't take place. For example you can run
> completion on strings from the obarray:
> 
> (completing-read "Symbol: " obarray)
> 
> It would be quite harmful if the symbol names are destroyed in the
> process.

I think we have different ideas of what constitutes the "completion
API", or, more accurately, the area which you consider as "completion
API that doesn't mutate strings by definition".

> I don't see the completion API as a meat-grinder. It is all quite
> well-defined.

Many of meat-grinders I had to deal with were extremely well-defined.
There's no contradiction between the two.