Diagnostics Guide¶
Diagnostics are spec-level observations implemented in src/diagnostics/.
Types¶
pub enum Severity {
Information,
Warning,
Error,
}
pub enum DiagnosticStage {
Parse,
CanonicalObjectModel,
Validation,
Analysis,
Planning,
Optimization,
Compilation,
Runtime,
}
pub enum DiagnosticCategory {
Syntax,
Structure,
Type,
Reference,
Semantic,
Compatibility,
Capability,
Runtime,
Extension,
}
pub struct Diagnostic {
pub id: String,
pub severity: Severity,
pub stage: DiagnosticStage,
pub category: DiagnosticCategory,
pub message: String,
pub object_ref: Option<String>,
pub remediation: Option<String>,
}
Standard diagnostic identifiers¶
Defined in src/diagnostics/codes.rs:
dtcs:parse-errordtcs:unsupported-versiondtcs:missing-required-fielddtcs:duplicate-identifierdtcs:invalid-identifierdtcs:unknown-fielddtcs:missing-lineagedtcs:ambiguous-referencedtcs:invalid-typedtcs:unresolved-referencedtcs:invalid-semantic-actiondtcs:invalid-ruledtcs:invalid-extensiondtcs:invalid-metadata(Phase 0.2)dtcs:invalid-interface(Phase 0.2)dtcs:type-incompatible(Phase 0.2)dtcs:invalid-conversion(Phase 0.2)dtcs:incompatible-contract(Phase 0.3)dtcs:conditional-compatibility(Phase 0.3)dtcs:evolution-breaking-change(Phase 0.3)dtcs:deprecated-object(Phase 0.3)dtcs:invalid-version(Phase 0.3)dtcs:version-conflict(Phase 0.3)dtcs:unknown-registry-entry(Phase 0.4)dtcs:invalid-registry(Phase 0.4)dtcs:unsupported-extension(Phase 0.4)dtcs:invalid-function(Phase 0.5)dtcs:invalid-expression(Phase 0.6)dtcs:invalid-semantics(Phase 0.6)dtcs:non-deterministic-semantics(Phase 0.6)dtcs:null-semantics-violation(Phase 0.6)dtcs:invalid-plan(Phase 0.7)dtcs:incomplete-plan(Phase 0.7)dtcs:cyclic-dependency(Phase 0.7)dtcs:plan-type-mismatch(Phase 0.7)dtcs:unresolved-plan-reference(Phase 0.7)dtcs:invalid-optimization(Phase 0.8) — optimized or input plan failed validation after optimizationdtcs:optimization-skipped(Phase 0.8, information) — a rewrite was conservatively skipped (for example when a type guard would not hold)dtcs:unsupported-capability(Phase 0.9)dtcs:invalid-capability(Phase 0.9)dtcs:compilation-failed(Phase 0.9)dtcs:invalid-execution-plan(Phase 0.9)dtcs:invalid-runtime-input(Phase 0.9)dtcs:precondition-violation(Phase 0.9)dtcs:postcondition-violation(Phase 0.9)dtcs:runtime-error(Phase 0.9)
Validation semantics¶
DiagnosticReport::is_valid()returnsfalseonly when one or more Error-severity diagnostics are present.- Warning and Information diagnostics do not block validation success.
Diagnostics must not alter transformation semantics.