core.typed.analyzer.jvm
January 17, 2020 · View on GitHub
Analyzer for JVM Clojure, tuned for consumption by an optional type checker.
DEPRECATION NOTICE
This repository is DEPRECATED and development has been moved to the core.typed monorepo. Please follow these instructions to upgrade.
Releases and Dependency Information
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>
Differences from tools.analyzer.jvm
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)
License
Copyright © Ambrose Bonnaire-Sergeant, Rich Hickey & contributors.
Licensed under the EPL (see the file epl-v10.html).
