We're updating the issue view to help you get more done. 

defprotocol generates unresolvable symbols

Description

defprotocol will emit symbols the analyzer cannot resolve. This has no impact in the JS since the emitted symbol is "correct", it just can't be resolved properly in the analyzer which may have other effects.

Each method of a defprotocol will be emitted with only dots and no namespace separation. The broken resolve for dotted symbols just accepts any symbol and in turn resolves them incorrectly.

1 2 3 4 5 6 7 8 9 10 11 (defprotocol ICloneable "Protocol for cloning a value." (^clj -clone [value] "Creates a clone of value.")) ;; expands to "invalid" CLJS cljs.core.-clone ;; resolves to broken CLJS cljs/core.-clone ;; emits "correct" JS regardless cljs.core._clone

Environment

None

Status

Assignee

Unassigned

Reporter

Thomas Heller

Labels

None

Approval

None

Patch

None

Priority

Minor