Clojure

Improve error message when calling a keyword with the wrong number of arguments

Details

  • Type: Enhancement Enhancement
  • Status: Open Open
  • Priority: Minor Minor
  • Resolution: Unresolved
  • Affects Version/s: Release 1.9
  • Fix Version/s: Release 1.10
  • Component/s: None
  • Labels:
  • Patch:
    Code and Test
  • Approval:
    Incomplete

Description

When you call a Keyword with the wrong number of arguments, the error message does not report how many arguments were passed:

(:kw "one" "two" "three")
=> java.lang.IllegalArgumentException: Wrong number of args passed to keyword: :kw

compare to calling an IFn, which does show the number of arguments passed:

(name "one" "two" "three")
=> clojure.lang.ArityException: Wrong number of args (3) passed to: core/name

The latter error message is more clear and makes it easier to debug.

The attached patch re-uses the ArityException class used elsewhere to generate error messages in the latter form when calling a keyword with the wrong number of arguments.

Addresses CLJ-1067

Patch: keyword-arity-exception-03.patch

Prescreened by: Alex Miller

  1. keyword-arity-exception.patch
    03/May/18 7:51 AM
    8 kB
    Marc O'Morain
  2. keyword-arity-exception-01.patch
    04/May/18 6:34 AM
    8 kB
    Marc O'Morain
  3. keyword-arity-exception-02.patch
    07/May/18 3:25 PM
    8 kB
    Marc O'Morain
  4. keyword-arity-exception-03.patch
    09/Jul/18 5:40 PM
    7 kB
    Marc O'Morain

Activity

People

Vote (1)
Watch (1)

Dates

  • Created:
    Updated: