binaryage / cljs-oops

ClojureScript macros for convenient native Javascript object access.
Other
350 stars 13 forks source link

oapply doesnt work for symbolic arguments #18

Closed carocad closed 6 years ago

carocad commented 6 years ago

Hey guys, first of all thanks a lot for this awesome project. I have only heard good things about it so I started using it recently.

However I was faced with an error that I cannot get my head around. I am not sure if this is just not the intended use or if this is a bug in the library, so here it is.

If I have something like (oops/apply+ object f args) oops will complain that args is not a sequence. My guess is that it is trying to check this at compile time, however I only know the args value at runtime, just as with the rest of the arguments 😞

Is this a bug or just not an intended use case?

darwin commented 6 years ago

I confirm this is a bug. Actually it is a problem in fspecs guarding our macros: https://github.com/binaryage/cljs-oops/blob/ea43b80a27a27a2b84434168f20b7d9d411632ee/src/lib/oops/core.clj#L145

The :args should be anything? there I guess. If you find a way how to redefine fspec or disable it temporarily that could be a good workaround, because I believe that the library code should work.

I won't get to fixing this until next week.