{% do-not-edit-xml-comment %}
Analyzer for JS Clojure, tuned for consumption by an optional type checker.
Latest stable release is 1.0.9.
deps.edn JAR dependency information:
{◊typedclojure-group-id◊}/typed.cljs.analyzer {:mvn/version "1.0.9"}
deps.edn Git dependency information:
- Note: use
clj -Sresolve
to resolve the:tag
to a:sha
{◊typedclojure-group-id◊}/typed.cljs.analyzer
{:git/url "{◊typedclojure-git-https-url◊}"
:deps/root "typed/cljs.analyzer"
:tag "1.0.9"}
Leiningen dependency information:
[{◊typedclojure-group-id◊}/typed.cljs.analyzer "1.0.9"]
Maven dependency information:
<dependency>
<groupId>{◊typedclojure-group-id◊}</groupId>
<artifactId>typed.cljs.analyzer</artifactId>
<version>1.0.9</version>
</dependency>
typed.cljs.analyzer is a heavily modified variant of tools.analyzer. 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 passuniquify-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
in JVM implementation for 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).