Skip to content

Latest commit

Β 

History

History
43 lines (33 loc) Β· 1.87 KB

File metadata and controls

43 lines (33 loc) Β· 1.87 KB
tags cyber, rs, reference

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.