Skip to content

QIEC diagnostics

The diagnostic the QIEC elaboration raises for a rejected source.

qiec_diagnostics

The diagnostic the QIEC elaboration raises for a rejected source.

QiecDiagnosticError

QiecDiagnosticError(message: str, *, code: str, file: str, line: int = 0, column: int = 0, program: str | None = None)

Bases: ValueError

A source-located, stable-code diagnostic from QIEC elaboration.

PARAMETER DESCRIPTION
message

What was rejected.

TYPE: str

code

The stable diagnostic code.

TYPE: str

file

The file the source was read from.

TYPE: str

line

The one-based line, or zero when unknown.

TYPE: int DEFAULT: 0

column

The zero-based column.

TYPE: int DEFAULT: 0

program

The program whose elaboration raised the diagnostic, when it was raised inside a program body; None for any other declaration.

TYPE: str | None DEFAULT: None

Source code in src/quivers/dsl/qiec_diagnostics.py
def __init__(
    self,
    message: str,
    *,
    code: str,
    file: str,
    line: int = 0,
    column: int = 0,
    program: str | None = None,
) -> None:
    self.message = message
    self.code = code
    self.file = file
    self.line = line
    self.column = column
    self.program = program
    location = f"{file}:{line}:{column}" if line else file
    super().__init__(f"{location}: [{code}] {message}")