MCPcopy Index your code
hub / github.com/clojure/clojure / create

Method create

src/jvm/clojure/lang/PersistentStructMap.java:54–70  ·  view source on GitHub ↗
(Def def, ISeq keyvals)

Source from the content-addressed store, hash-verified

52}
53
54static public PersistentStructMap create(Def def, ISeq keyvals){
55 Object[] vals = new Object[def.keyslots.count()];
56 IPersistentMap ext = PersistentHashMap.EMPTY;
57 for(; keyvals != null; keyvals = keyvals.next().next())
58 {
59 if(keyvals.next() == null)
60 throw new IllegalArgumentException(String.format("No value supplied for key: %s", keyvals.first()));
61 Object k = keyvals.first();
62 Object v = RT.second(keyvals);
63 Map.Entry e = def.keyslots.entryAt(k);
64 if(e != null)
65 vals[(Integer) e.getValue()] = v;
66 else
67 ext = ext.assoc(k, v);
68 }
69 return new PersistentStructMap(null, def, vals, ext);
70}
71
72static public PersistentStructMap construct(Def def, ISeq valseq){
73 Object[] vals = new Object[def.keyslots.count()];

Callers

nothing calls this directly

Calls 8

secondMethod · 0.95
assocMethod · 0.95
formatMethod · 0.80
countMethod · 0.65
nextMethod · 0.65
firstMethod · 0.65
entryAtMethod · 0.65
getValueMethod · 0.45

Tested by

no test coverage detected