The inference now tags a :local it proved to be a vector with :hint :vector, and the back end specializes (count v) -> pv-count (skipping core-count's dispatch chain) and the 3-arg (nth v i default) -> pv-nth. The 2-arg nth is deliberately NOT specialized: pv-nth returns nil out-of-bounds where Clojure nth throws. Sound, conformance 335/335 x3 and full jpm test pass; type-infer-phase2-test pins the specialization and the 2-arg exclusion. |
||
|---|---|---|
| .. | ||
| clojure/core | ||
| jolt | ||