Liking cljdoc? Tell your friends :D

typed.clj.analyzer.passes.validate


-validatecljmultimethod


validateclj

(validate {:keys [tag form env] :as ast})

Validate tags, classes, method calls. Throws exceptions when invalid forms are encountered, replaces class symbols with class objects.

Passes opts:

  • :validate/throw-on-arity-mismatch If true, validate will throw on potential arity mismatch
  • :validate/wrong-tag-handler If bound to a function, will invoke that function instead of throwing on invalid tag. The function takes the tag key (or :name/tag if the node is :def and the wrong tag is the one on the :name field meta) and the originating AST node and must return a map (or nil) that will be merged into the AST, possibly shadowing the wrong tag with Object or nil.
  • :validate/unresolvable-symbol-handler If bound to a function, will invoke that function instead of throwing on unresolvable symbol. The function takes three arguments: the namespace (possibly nil) and name part of the symbol, as symbols and the originating AST node which can be either a :maybe-class or a :maybe-host-form, those nodes are documented in the tools.analyzer quickref. The function must return a valid tools.analyzer.jvm AST node.
Validate tags, classes, method calls.
Throws exceptions when invalid forms are encountered, replaces
class symbols with class objects.

Passes opts:
* :validate/throw-on-arity-mismatch
   If true, validate will throw on potential arity mismatch
* :validate/wrong-tag-handler
   If bound to a function, will invoke that function instead of
   throwing on invalid tag.
   The function takes the tag key (or :name/tag if the node is :def and
   the wrong tag is the one on the :name field meta) and the originating
   AST node and must return a map (or nil) that will be merged into the AST,
   possibly shadowing the wrong tag with Object or nil.
* :validate/unresolvable-symbol-handler
   If bound to a function, will invoke that function instead of
   throwing on unresolvable symbol.
   The function takes three arguments: the namespace (possibly nil)
   and name part of the symbol, as symbols and the originating
   AST node which can be either a :maybe-class or a :maybe-host-form,
   those nodes are documented in the tools.analyzer quickref.
   The function must return a valid tools.analyzer.jvm AST node.
raw docstring

validate-callclj

(validate-call {:keys [class instance method args tag env op] :as ast})

validate-interfacesclj

(validate-interfaces {:keys [env form interfaces]})

validate-tagclj

(validate-tag t {:keys [env] :as ast})

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close