Analyzer for JVM Clojure, tuned for consumption by an optional type checker.
Latest stable release is 1.0.1.
deps.edn JAR dependency information:
org.clojure.typed/analyzer.jvm {:mvn/version "1.0.1"}deps.edn Git dependency information:
- Note: use
clj -Sresolveto resolve the:tagto a:sha
org.clojure.typed/analyzer.jvm {:git/url "https://github.com/clojure/core.typed"
:deps/root "typed/analyzer.jvm"
:tag "1.0.1"}Leiningen dependency information:
[org.clojure.typed/analyzer.jvm "1.0.1"]Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>core.typed.analyzer.jvm</artifactId>
<version>1.0.1</version>
</dependency>core.typed.analyzer.jvm is a heavily modified variant of tools.analyzer.jvm. If you're familiar with the latter, here's what this library does differently.
- Adds an
:unanalyzedAST node that just holds a:formand:env. - Forms are analyzed lazily, with
:unanalyzednodes being used for immediate children. :unanalyzednodes support a:clojure.core.typed.analyzer/configentry which will be associated onto whatever node it becomes when analyzed.clojure.tools.analyzer.envis not used.resolve-{sym,ns}are now dynamic variables that are implemented for each platform.run-passesonly supports a single passuniquify-localsis a default pass that is compatible with:unanalyzednodes- Gilardi scenario can be (carefully) managed (see
clojure.core.typed.analyzer.jvm.gilardi-testfor a type system example)
Copyright © Ambrose Bonnaire-Sergeant, Rich Hickey & contributors.
Licensed under the EPL (see the file epl-v10.html).
Copyright © Nicola Mometto, Rich Hickey & contributors.
Licensed under the EPL (see the file epl-v10.html).
