Error Catalog

33 diagnostics across 6 categories. All error codes are stable. Some codes are enforced by proc-macro only, some by rsc lint only, and some by both — see enforcement levels below.

Category Codes Count Spec Enforcement
Registers RS001–RS008 8 registers.md proc-macro
Async RS101 1 async.md rsc lint
Deterministic RS201–RS210 10 deterministic.md proc-macro (partial) + rsc lint (full)
Addressed RS301–RS306 6 addressed.md proc-macro + rsc lint
Step RS401 1 step.md rsc lint
Restrictions RS501–RS507 7 restrictions.md rsc lint

Code Ranges

RS0xx — Typed registers (MMIO validation)
RS1xx — Bounded async (deadline enforcement)
RS2xx — Deterministic functions (purity checks)
RS3xx — Addressed types (canonical serialization)
RS4xx — Step-scoped state (context enforcement)
RS5xx — Edition restrictions (allocation, dispatch, control flow)

Enforcement Levels

Each error code is enforced at one or both levels:

  • proc-macro: works with standard rustc via rs-lang-macros
  • rsc lint: requires rsc compiler driver, operates on HIR/MIR
Level What it checks Strength
proc-macro Token stream / syn AST Catches literal usage, misses indirection
rsc lint HIR types, MIR call graph Full transitive analysis

Codes enforced by proc-macro only: RS001–RS008. Codes enforced by rsc only: RS101, RS206, RS209, RS210, RS401, RS501–RS507. Codes enforced by both: RS201–RS205, RS207, RS208, RS301–RS306.

Dimensions

errors
trident/reference/errors
🚨 Error Catalog [← Language Reference](/trident-reference-language) | [IR Reference](/trident-reference-ir) | [Target Reference](/trident-reference-targets) All Trident compiler diagnostics — errors, warnings, and optimization hints. Derived from the language specification…

Pages in this namespace

Local Graph