Clojure

print-dup generates call to nonexistent method for APersistentVector$SubVector

Details

  • Type: Defect Defect
  • Status: Open Open
  • Priority: Minor Minor
  • Resolution: Unresolved
  • Affects Version/s: Backlog
  • Fix Version/s: None
  • Component/s: None
  • Labels:

Description

Originally reported by Carson

print-dup on any collection type generates code to call the create method of the collection's class. APersistentVector$SubVector has no create method.

Example with Clojure at commit ecae8ff08a298777c365a261001adfe9bfa4d83c :

Clojure 1.3.0-master-SNAPSHOT
user=> (read-string (binding [*print-dup* true] (pr-str (subvec [1 2 3] 1))))
IllegalArgumentException No matching method found: create  clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:50)

Activity

Hide
Kevin Downey added a comment -

33.927 hiredman ,(binding [*print-dup* true] (pr-str (first {:a 1})))
33.928 clojurebot "#=(clojure.lang.MapEntry/create [:a 1])"
33.938 hiredman yeah, well, I was busy
33.941 chouser heh
33.949 hiredman ,(clojure.lang.MapEntry/create [:a 1])

Show
Kevin Downey added a comment - 33.927 hiredman ,(binding [*print-dup* true] (pr-str (first {:a 1}))) 33.928 clojurebot "#=(clojure.lang.MapEntry/create [:a 1])" 33.938 hiredman yeah, well, I was busy 33.941 chouser heh 33.949 hiredman ,(clojure.lang.MapEntry/create [:a 1])

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: