is mikerods question related to romans?
I think we don’t implement IMeta for arbitrary objects because it would require either mutating the object or doing some sort of copy
primitives probably couldn’t hold meta without some wrapper
Right. I had suggested that a revision to macroexpansion logic couldn't arbitrarily put meta on the result of macroexpansion (in other words convey, induce, whatever term). Mike is right in that you could force the issue. But you definitely wouldn't want to. Nor does it seem either necessary, and the whole idea seems at odds with Clojure's behavior.
In some sense, one odd aspect of the hinting failure is that it only happens because we happen to have a macro defined for aget
.
It seems like currently most optimisations that are built with type inference are operating with primitive types e.g. string boolean number, would it make sense to include core data types as well?
To be fair there's also 'array and 'seq
https://clojure.atlassian.net/browse/CLJS-3132 is an example of optimizations surrounding cljs.core/Keyword
and cljs.core/Symbol
I was thinking about checked if, right now compiler is looking for constant values, boolean and seq
What is 'clj tag for btw?
Thanks for explaining. And yeah that all makes sense.