ClojureScript

Bad Exception message when multimethod has no dispatch-fn

Details

  • Type: Defect Defect
  • Status: Open Open
  • Priority: Minor Minor
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None
  • Patch:
    Code

Description

When a multi-fn has no dispatch method for a given value the current exception string prints the cljs.core/name function instead of the actual name of the mf. Minor bug but makes it kinda hard to track down which multi-fn actually failed to dispatch.

The attached patch fixes that but directly accessing the name property of the multi-fn which is not very clean but better than the current error. AFAICT cljs doesnt have the clojure.lang.Named protocol, which would probably be cleaner.

Activity

Hide
Thomas Heller added a comment -

Corrected the .patch

Show
Thomas Heller added a comment - Corrected the .patch
Hide
David Nolen added a comment -

ClojureScript now has an INamed protocol

Show
David Nolen added a comment - ClojureScript now has an INamed protocol
Hide
Thomas Heller added a comment -

Updated the .patch to implement INamed for cljs.core/MultiFn, turning its name into a real symbol.

Tests pass but I dont know if that part of the code is actually tested.

Show
Thomas Heller added a comment - Updated the .patch to implement INamed for cljs.core/MultiFn, turning its name into a real symbol. Tests pass but I dont know if that part of the code is actually tested.
Hide
Thomas Heller added a comment -

Oh, I'm not quite sure that the way I resolved the namespace for the symbol is totally correct. It works but I had to dig a bit.

Show
Thomas Heller added a comment - Oh, I'm not quite sure that the way I resolved the namespace for the symbol is totally correct. It works but I had to dig a bit.

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated: