[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Warning for arity mismatches
From: |
Andy Wingo |
Subject: |
Re: Warning for arity mismatches |
Date: |
Sat, 07 Nov 2009 21:42:33 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) |
Hi :)
On Sat 07 Nov 2009 19:38, address@hidden (Ludovic Courtès) writes:
> There’s a new warning available, ‘-Warity-mismatch’, which warns about
> wrong arguments counts, etc.
Cool :)
> It currently lacks support for keyword
> arguments, which is why it’s not ready yet to compile Guile itself (it
> produces erroneous warnings for procedures with keyword arguments.)
Why doesn't it just not warn in that case?
> I think some of these warnings should really be errors, when there’s
> undoubtedly a wrong number of arguments, as in:
>
> (let ((f (lambda (x) x)))
> (f 1 2 3))
>
> What do you think?
I think there should be a -Werror compilation argument, but that we
should, by default, compile all expressions. It could very well be that
the user wanted to cause an exception to be raised.
> Actually, the tree-il->glil pass surely does a significant part of what
> ‘arity-mismatch-analysis’ does, and I wonder whether/how this could be
> factorized. For example, tree-il->glil must already diagnose the
> problem in the example above. Andy?
See analyze.scm:173. I don't know if I'd bother factorizing anything
more than (args-compatible? proc args).
Andy
--
http://wingolog.org/