Skip to main content
Every stable error code, generated from the one registry the compiler enforces. Codes + line numbers are the conformance-normative half of an expected-error file; the kebab-case names are mnemonics for humans and grep — not part of the contract. Message prose and suggestions are non-normative and may be reworded freely. GENERATED FILE — do not edit. The source of truth is /packages/lang/src/schema/errors.ts. Edit the registry and run pnpm gen:errors; CI pins this file to the generator’s output. Spec and docs prose cite codes from this file and never invent them — when adding a condition, take the block’s stated next free code. Rules of the registry (from the source): a code names one semantic condition; several throw sites may share a code, one site never emits two; codes are NEVER renumbered or reused — a retired condition keeps its code, marked retired below.

D01xx — lexical (tokenize)

Next free code in this block: D0105. New conditions take the next number; gaps below it are deliberate growth room, never free.

D02xx — statement syntax

Next free code in this block: D0276. New conditions take the next number; gaps below it are deliberate growth room, never free.

D03xx — reference spelling & lookup

Next free code in this block: D0331. New conditions take the next number; gaps below it are deliberate growth room, never free.

D04xx — expressions & dimensional typing

Next free code in this block: D0427. New conditions take the next number; gaps below it are deliberate growth room, never free.

D05xx — declarations & resolution

Next free code in this block: D0527. New conditions take the next number; gaps below it are deliberate growth room, never free.

D06xx — geometry & placement

Next free code in this block: D0617. New conditions take the next number; gaps below it are deliberate growth room, never free.

D07xx — graphic standard

Next free code in this block: D0717. New conditions take the next number; gaps below it are deliberate growth room, never free.