Affects Version/s: Release 1.4, Release 1.5, Release 1.6
Fix Version/s: None
Patch:Code and Test
Examples that work as expected:
Examples that do not work as desired, but are changed by the proposed patch:
I looked through the rest of the code for similar cases, and found that conj! assoc! and disj! also had the same undesirable property of throwing an exception for no args after the collection, and there were some other differences between them in how different numbers of arguments were handled, such as:
+ conj handles an arbitrary number of arguments, but conj! does not.
+ assoc checks for a final key with no value specified (
CLJ-1052), but assoc! did not.
History/discussion: A discussion came up in the Clojure Google group about conj giving an error when taking only a coll as an argument, as opposed to disj which works for this case: