summaryrefslogtreecommitdiff
path: root/cli/diagnostics.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/diagnostics.rs')
-rw-r--r--cli/diagnostics.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/cli/diagnostics.rs b/cli/diagnostics.rs
index 015dea178..846cd7751 100644
--- a/cli/diagnostics.rs
+++ b/cli/diagnostics.rs
@@ -49,6 +49,12 @@ pub struct DiagnosticSourceRange {
pub enum DiagnosticSourcePos {
SourcePos(SourcePos),
ByteIndex(usize),
+ LineAndCol {
+ // 0-indexed line number
+ line: usize,
+ // 0-indexed column number
+ column: usize,
+ },
}
impl DiagnosticSourcePos {
@@ -56,6 +62,9 @@ impl DiagnosticSourcePos {
match self {
DiagnosticSourcePos::SourcePos(pos) => *pos,
DiagnosticSourcePos::ByteIndex(index) => source.range().start() + *index,
+ DiagnosticSourcePos::LineAndCol { line, column } => {
+ source.line_start(*line) + *column
+ }
}
}
}