diff --git a/parser/src/rev_mapper/grammar.pest b/parser/src/rev_mapper/grammar.pest index 7ef6582..93e4aab 100644 --- a/parser/src/rev_mapper/grammar.pest +++ b/parser/src/rev_mapper/grammar.pest @@ -2,9 +2,7 @@ WHITESPACE = _{ " " | "\t" | "\r" | "\n" } integer = @{ ASCII_DIGIT+ } -next_line = { "+" } - -map = { "/*" ~ integer ~ ":" ~ integer ~ next_line? ~ "*/" } +map = { "/*" ~ integer ~ ":" ~ integer ~ "*/" } non_map = { (!map ~ ANY)+ } diff --git a/parser/src/rev_mapper/mod.rs b/parser/src/rev_mapper/mod.rs index ff9fbcf..3e7a4d0 100644 --- a/parser/src/rev_mapper/mod.rs +++ b/parser/src/rev_mapper/mod.rs @@ -32,17 +32,7 @@ pub fn get_mapping(input: &str) -> HashSet<(RustMap, MistMap)> { inner.next().unwrap().as_str().parse().unwrap(), ); - mapping.insert(( - RustMap(rs.0, rs.1), - MistMap( - if inner.next().is_some() { - line - } else { - line - 1 - }, - col, - ), - )); + mapping.insert((RustMap(rs.0, rs.1), MistMap(line, col))); } } diff --git a/src/builder.rs b/src/builder.rs index 57e5a89..a65983a 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -30,7 +30,7 @@ pub fn build(mut args: Vec, config: Config, root: PathBuf) -> bool { args.remove(0); args.insert(1, "--message-format=json".to_string()); - let is_root = root == env::current_dir().unwrap(); + let is_root = root == env::current_dir().expect("Failed getting env"); let mut command = Command::new("cargo") .args(args) @@ -38,9 +38,9 @@ pub fn build(mut args: Vec, config: Config, root: PathBuf) -> bool { .stderr(Stdio::inherit()) .stdin(Stdio::inherit()) .spawn() - .unwrap(); + .expect("Failed to run cargo"); - let mut reader = std::io::BufReader::new(command.stdout.take().unwrap()); + let mut reader = std::io::BufReader::new(command.stdout.take().expect("Failed to get reader")); let mut diagnostics = Vec::new(); @@ -60,17 +60,21 @@ pub fn build(mut args: Vec, config: Config, root: PathBuf) -> bool { let mist_path = root.join(&mist_file); - if !fs::exists(&mist_path).unwrap() { + if !fs::exists(&mist_path).expect("Unable to check if mist file exists") { diagnostics.push(MistDiagnostic::Rust(msg)); break; } let map = mapping.entry(rust_path.clone()).or_insert_with(|| { - get_mapping(&fs::read_to_string(rust_path).unwrap()) + get_mapping( + &fs::read_to_string(rust_path) + .expect("Failed to read file for mapping"), + ) }); let mist_span = - find_mapping(&map, &RustMap(span.line_end, span.column_start)).unwrap(); + find_mapping(&map, &RustMap(span.line_end, span.column_start)) + .expect("Unable to find mapping"); let mist_msg = MistDiagnosticMessage { message: span.label.clone().unwrap_or(msg.message.message.clone()), @@ -105,7 +109,9 @@ pub fn build(mut args: Vec, config: Config, root: PathBuf) -> bool { let mut raw_reader = reader.into_inner(); let mut stdout = std::io::stdout(); - std::io::copy(&mut raw_reader, &mut stdout).unwrap(); + std::io::copy(&mut raw_reader, &mut stdout) + .map_err(|v| v.to_string()) + .expect("(Mist) Failed to copy IO"); command.wait().unwrap(); @@ -131,7 +137,7 @@ pub fn print_diagnostics(diagnostics: &Vec) { println!( "\n{}:{}:{}\n \x1b[31mError\x1b[0m: {}\n\t{}", msg.file_name, - msg.line + 1, + msg.line, msg.column, msg.message, line.unwrap_or_default(), @@ -144,12 +150,13 @@ pub fn print_diagnostics(diagnostics: &Vec) { println!( "\n{}:{}:{}\n \x1b[33mWarning\x1b[0m: {}\n\t{}", msg.file_name, - msg.line + 1, + msg.line, msg.column, msg.message, line.unwrap_or_default(), ) } + MistDiagnostic::Rust(rs) => println!("{rs}"), } } @@ -163,7 +170,7 @@ pub fn get_line( let lines = files.entry(src_path.clone()).or_insert_with(|| { fs::read_to_string(src_path) - .unwrap() + .expect("Unable to read mist file") .lines() .into_iter() .map(String::from)