improved error messages

- some small bugs are now fixed
- include comments in error messages (if this causes issues, use --hide-comments)
- colors should make more sense now
- error-related things moved to mers_lib/src/errors/
This commit is contained in:
Mark
2023-11-16 14:50:09 +01:00
parent c39e784939
commit 12925fed67
33 changed files with 462 additions and 320 deletions

View File

@@ -1,6 +1,6 @@
use crate::program::{
self,
run::{CheckError, SourceRange},
use crate::{
errors::{CheckError, SourceRange},
program::{self},
};
use super::{CompInfo, MersStatement};

View File

@@ -1,9 +1,7 @@
use crate::{
errors::{CheckError, SourceRange},
info,
program::{
self,
run::{CheckError, SourceRange},
},
program::{self},
};
use super::{CompInfo, MersStatement};

View File

@@ -1,5 +1,7 @@
use crate::program::run::{CheckError, SourceRange};
use crate::{info, program};
use crate::{
errors::{CheckError, SourceRange},
info, program,
};
use super::{CompInfo, MersStatement};

View File

@@ -1,8 +1,8 @@
use crate::program::run::{CheckError, SourceRange};
use std::sync::{Arc, Mutex};
use crate::{
data,
errors::{CheckError, SourceRange},
program::{self, run::CheckInfo},
};
@@ -29,8 +29,8 @@ impl MersStatement for Function {
let arg_target = Arc::new(self.arg.compile(info, comp)?);
comp.is_init = false;
let run = Arc::new(self.run.compile(info, comp)?);
let arg2 = Arc::clone(&arg_target);
let run2 = Arc::clone(&run);
let arg2: Arc<Box<dyn crate::program::run::MersStatement>> = Arc::clone(&arg_target);
let run2: Arc<Box<dyn crate::program::run::MersStatement>> = Arc::clone(&run);
Ok(Box::new(program::run::function::Function {
pos_in_src: self.pos_in_src,
func_no_info: data::function::Function {

View File

@@ -1,6 +1,6 @@
use crate::program::{
self,
run::{CheckError, SourceRange},
use crate::{
errors::{CheckError, SourceRange},
program::{self},
};
use super::{CompInfo, MersStatement};

View File

@@ -4,11 +4,9 @@ use colored::Colorize;
use crate::{
data::{self, Data},
errors::{error_colors, CheckError, SourceRange},
info::{self, Local},
program::{
self,
run::{error_colors, CheckError, SourceRange},
},
program::{self},
};
use super::{CompInfo, MersStatement};
@@ -27,7 +25,7 @@ impl MersStatement for IncludeMers {
info: &mut info::Info<super::Local>,
comp: CompInfo,
) -> Result<Box<dyn program::run::MersStatement>, CheckError> {
let compiled = match self.include.compile(info, comp) {
let compiled: Arc<Box<dyn crate::program::run::MersStatement>> = match self.include.compile(info, comp) {
Ok(v) => Arc::new(v),
Err(e) => {
return Err(CheckError::new()

View File

@@ -1,5 +1,7 @@
use crate::program::run::SourceRange;
use crate::program::{self, run::CheckError};
use crate::{
errors::{CheckError, SourceRange},
program::{self},
};
use super::{CompInfo, MersStatement};

View File

@@ -1,8 +1,9 @@
use std::{collections::HashMap, fmt::Debug};
use crate::info;
use super::run::{CheckError, SourceRange};
use crate::{
errors::{CheckError, SourceRange},
info,
};
#[cfg(feature = "parse")]
pub mod assign_to;

View File

@@ -1,9 +1,7 @@
use crate::{
errors::{CheckError, SourceRange},
info,
program::{
self,
run::{CheckError, SourceRange},
},
program::{self},
};
use super::{CompInfo, MersStatement};

View File

@@ -1,5 +1,8 @@
use crate::program::run::{CheckError, SourceRange};
use crate::{data::Data, program};
use crate::{
data::Data,
errors::{CheckError, SourceRange},
program,
};
use super::{CompInfo, MersStatement};

View File

@@ -1,9 +1,7 @@
use crate::{
errors::{error_colors, CheckError, SourceRange},
info::Local,
program::{
self,
run::{error_colors, CheckError, SourceRange},
},
program::{self},
};
use super::{CompInfo, MersStatement};