Subject: Re: bug#56400: Make setopt warn on type mismatch

From: Stefan Kangas <[email-masked]>
Date: Tue, 5 Jul 2022 19:08:24 +0200

Lars Ingebrigtsen <[email-masked]> writes:

> Stefan Kangas <[email-masked]> writes:
>
> > Why not make `setopt' warn in case there is a type mismatch?
> > For example, in:
> >
> >     (setopt tetris-buffer-width "hello")
> >
> > But the type of `tetris-buffer-width' is natnum.
>
> It should throw an error already:

Aha, I guess it doesn't throw an error if `tetris' isn't loaded
already, as it has no way of knowing the type yet.  IOW, in emacs -Q,
I need to say this to get an error:

(progn
  (require 'tetris)
  (setopt tetris-buffer-width "hello"))

That's pretty good, but I wonder if we could do better.  I expect that
users will often set settings from libraries that aren't yet loaded.
For example, how about warning upon loading the library if the
variable is set to an incompatible value?  Or something.