Skip to main content

Linter

drat lint provides readable, low-heuristic warnings for common Draton issues while respecting the locked canonical syntax rules.

Current checks

  • deprecated inline type syntax
  • unused imports
  • unreachable code after guaranteed return
  • missing explicit returns when a non-Unit contract can obviously fall through
  • obvious @type contract arity mismatches
  • lexer and parser errors in the target files

Usage

drat lint src/
drat lint examples tests

Output model

drat lint is advisory in v0. It prints warnings and errors, but it does not fail the process just because findings exist. That keeps it usable on mixed or migration-era codebases while still surfacing canonical guidance.

Philosophy boundary

The linter exists to reinforce Draton's readability-first rules:

  • it prefers explicit, actionable warnings over clever style scoring
  • it treats deprecated syntax as migration pressure, not as an equal style
  • it does not invent competing syntax policies

Repository usage

The repository ships a task for linting the main source subsets:

drat task lint