Analyzer for JVM Clojure, tuned for consumption by an optional type checker.
This repository is DEPRECATED and development has been moved to the core.typed monorepo. Please follow these instructions to upgrade.
Latest stable release is 0.7.1.
deps.edn dependency information:
org.clojure/core.typed.analyzer.jvm {:mvn/version "0.7.1"}Leiningen dependency information:
[org.clojure/core.typed.analyzer.jvm "0.7.1"]Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>core.typed.analyzer.jvm</artifactId>
<version>0.7.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).
