error display underline now includes a.f(b) (b) part

This commit is contained in:
Mark
2023-10-27 19:57:45 +02:00
parent cfa5a5e43e
commit 577ef510ce
12 changed files with 39 additions and 2 deletions

View File

@@ -25,4 +25,7 @@ impl MersStatement for AssignTo {
source: self.source.compile(info, comp)?,
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -28,4 +28,7 @@ impl MersStatement for Block {
.collect::<Result<Vec<_>, _>>()?,
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -24,4 +24,7 @@ impl MersStatement for Chain {
chained: self.chained.compile(info, comp)?,
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -47,4 +47,7 @@ impl MersStatement for Function {
},
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -30,4 +30,7 @@ impl MersStatement for If {
},
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -30,4 +30,7 @@ impl MersStatement for InitTo {
source,
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -2,6 +2,8 @@ use std::{collections::HashMap, fmt::Debug};
use crate::info;
use super::run::SourceRange;
#[cfg(feature = "parse")]
pub mod assign_to;
#[cfg(feature = "parse")]
@@ -42,6 +44,7 @@ pub trait MersStatement: Debug + Send + Sync {
}
o
}
fn source_range(&self) -> SourceRange;
}
#[derive(Clone, Copy)]

View File

@@ -28,4 +28,7 @@ impl MersStatement for Tuple {
.collect::<Result<Vec<_>, _>>()?,
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -23,4 +23,7 @@ impl MersStatement for Value {
val: self.data.clone(),
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -41,4 +41,7 @@ impl MersStatement for Variable {
},
}))
}
fn source_range(&self) -> SourceRange {
self.pos_in_src
}
}

View File

@@ -74,6 +74,14 @@ impl From<(SourcePos, SourcePos)> for SourceRange {
}
}
}
impl SourceRange {
pub fn start(&self) -> SourcePos {
self.start
}
pub fn end(&self) -> SourcePos {
self.end
}
}
#[derive(Clone, Debug)]
pub struct CheckError(Vec<CheckErrorComponent>);
#[derive(Clone, Debug)]