Restrict -conj on maps via seqs to map entries

Description

In Clojure:

But in ClojureScript:

There is a check that the entries satisfy vector?, but we could instead require that they satisfy map-entry?. In fact, the error message given when vector? isn't satisfied is: "conj on a map takes map entries or seqables of map entries."

Rationale: Even though this change would reject some programs, those programs are incorrect (only accidentally work), and, if ported to Clojure would fail there. Additionally, leveraging the fact that they are map entries would allow access to their keys and values, which can lead to faster code. (See leveraging map entries in CLJS-3116)

Environment

None

Assignee

Mike Fikes

Reporter

Mike Fikes

Labels

Approval

None

Patch

None

Priority

Major
Configure