clojure-dev

Issues: https://clojure.atlassian.net/browse/CLJ | Guide: https://insideclojure.org/2015/05/01/contributing-clojure/
2019-07-05T04:32:40.369500Z

Does anyone know why a Clojure/Java LazySeq object has a field named sv in its implementation? It is only accessed from the methods sval and seq, and sval is only ever called from seq, and both are synchronized. It seems like sv is redundant, and s would be enough, but I am probably missing something: https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/LazySeq.java#L39-L63

alexmiller 2019-07-05T13:08:39.370400Z

maybe it is arranged to avoid calling RT.seq() or casting in the terminator case?