package ppx_js_style

  1. Overview
  2. Docs
Code style checker for Jane Street Packages


Dune Dependency






Part of the Jane Street's PPX rewriters collection.

This packages is a no-op ppx rewriter. It is used as a 'lint' tool to enforce some coding conventions across all Jane Street packages.

Published: 20 Mar 2018


ppx_js_style - Enforce Jane Street coding styles

ppx_js_style is an identity ppx rewriter that enforces Jane Street coding styles.

Coding rules

The following rules are enforced by ppx_js_style:

  • Enabled by -dated-deprecation: [@@deprecated] attributes must contain the date of deprecation, using the format "[since MM-YYYY] ..." N.B. this check, on by default at janestreet, but off by default externally, can also be disabled with the flag -no-dated-deprecation

  • Enabled by -annotated-ignores: Ignored expressions must come with a type annotation, such as: ignore (expr : typ) let _ : type = expr Note that aliases need not be annotated: let _ = in

  • Enabled by -check-doc-comments: Comments in mli must either be documentation comments or explicitely "ignored": (** documentation comment *) (*_ ignored comment *) Normal (* comment *) comments are disallowed.

    This flag additionally enables warning 50, which checks the placement of documentation comments.

    Finally, doc comments are checked to be syntactically valid.

  • Enabled by -compat-32: Checks that calling ocamlc on the input would produce bytecode that works on 32 bits architectures (including js_of_ocaml), ie that all constant are representable on 32 bits architectures. Compared to the compiler flag by the same name, it allows to perform this check without building any bytecode.

Dependencies (6)

  1. ppxlib >= "0.1.0" & < "0.9.0"
  2. octavius
  3. ocaml-migrate-parsetree >= "1.0" & < "2.0.0"
  4. jbuilder >= "1.0+beta18.1"
  5. base >= "v0.11" & < "v0.12"
  6. ocaml >= "4.04.1"

Dev Dependencies


Used by (2)

  1. parsexp_io = "v0.11.0"
  2. ppx_base = "v0.11.0"




Innovation. Community. Security.