Skip to content
No description, website, or topics provided.
Clojure HTML Shell
Branch: master
Clone or download
Latest commit e6783a9 Jun 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci more up-to-date cirleci env Apr 16, 2019
images info Nov 9, 2018
script remove build scripts Dec 6, 2018
src note Jun 17, 2019
.gitignore gitignore Nov 9, 2018
CHANGELOG.md date Apr 16, 2019
README.md readme Apr 16, 2019
deps.edn
epl-v10.html info Nov 9, 2018
pom.xml http -> https Jun 17, 2019

README.md

core.typed.analyzer.jvm

Analyzer for JVM Clojure, tuned for consumption by an optional type checker.

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 :unanalyzed AST node that just holds a :form and :env.
  • Forms are analyzed lazily, with :unanalyzed nodes being used for immediate children.
  • :unanalyzed nodes support a :clojure.core.typed.analyzer/config entry which will be associated onto whatever node it becomes when analyzed.
  • clojure.tools.analyzer.env is not used.
  • resolve-{sym,ns} are now dynamic variables that are implemented for each platform.
  • run-passes only supports a single pass
  • uniquify-locals is a default pass that is compatible with :unanalyzed nodes
  • Gilardi scenario can be (carefully) managed (see clojure.core.typed.analyzer.jvm.gilardi-test for a type system example)

License

Copyright © Ambrose Bonnaire-Sergeant, Rich Hickey & contributors.

Licensed under the EPL (see the file epl-v10.html).

You can’t perform that action at this time.