Subject: bug#37943: assoc-default is wrongly flagged as side-effect-free.

From: Lars Ingebrigtsen <[email-masked]>
Date: Mon, 28 Oct 2019 16:24:32 +0100

Alan Mackenzie <[email-masked]> writes:

> In the source for assoc-default (in subr.el) appears
>
>     (declare (side-effect-free t))
>
> .  This is not true when the TEST argument to assoc-default itself
> changes the match-data.
>
> I suggest removing this declaration from the function rather than
> amending the code with a save-match-data.  There are calls to
> assoc-default in set-auto-mode where the caller relies on the match data
> set by the function when TEST is string-match.  :-(

Yeah, I don't think any function that takes a closure as an argument
should be marked side-effect free?  The TEST function can side-effect as
much as it wants.

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