Diagnostics
Stable diagnostic records, CLI JSON output, code ranges, and source locations.
Quire diagnostics are stable, machine-readable records used by the CLI, language server, CI, and planned visual-builder integrations.
Diagnostic shape
Diagnostics include a stable code, severity, message, file, line, and column. The invalid fixture in examples/invalid-field.quire references a missing field:
quire BrokenProductPage {
model {
product: Product
}
route "/broken"
title product.doesNotExist
section hero {
text heading {
value product.title
}
}
}
That case is documented as diagnostic P0363:
{
"code": "P0363",
"severity": "error",
"message": "Type Product has no field 'doesNotExist'.",
"file": "examples/invalid-field.quire",
"line": 7,
"column": 9
}
CLI JSON
Use --json with quire check:
quire check examples/product.quire --json
Successful checks return ok: true, an empty diagnostics array, and a summary with zero errors and warnings. Failed checks return ok: false, the diagnostics array, and summary counts.
Code ranges
P01xx: lexer diagnosticsP02xx: parser diagnosticsP03xx: semantic and type-checker diagnosticsP99xx: internal diagnostics
Current semantic codes cover missing model blocks, unknown types, duplicate symbols, invalid blocks and children, condition and repeat typing, component errors, unknown attributes, type mismatches, unsupported expressions, optional access, invalid capabilities, localization descriptors, advanced authoring helpers, bindings, module resolution, package manifests, and internal failures.
Human output
Human diagnostics include the same code and a source caret:
examples/invalid-field.quire:7:9 error: [P0363] Type Product has no field 'doesNotExist'.
title product.doesNotExist
^