clojure.reflect protocol meta regression

Description

Two users have reported regressions from the protocol meta added to clojure.reflect returns in Clojure 1.10.

The shortest repro is something like this:

The actual cases where this is happening are uses of clojure.reflect in values returned by macro (see https://groups.google.com/forum/#!msg/clojure/pxLN9tYti4c/zbhLCOrTBgAJ for one example).

Cause: Class symbols returned from clojure.reflect are now adorned with meta like:

which has an embedded datafy function. The compiler emits this into the compiled class pool (MetaExpr wrapping the object).

Workaround: A workaround is to strip the meta from the symbols inside the macro and return the stripped symbol.

Environment

None
Your pinned fields
Click on the next to a field label to start pinning.

Assignee

Unassigned

Reporter

Alex Miller

Approval

Triaged

Priority

Critical

Affects versions