From 9a2249fd74584e9e648093c2f2d4101418283bcd Mon Sep 17 00:00:00 2001 From: David Mak Date: Mon, 6 Nov 2023 15:18:50 +0800 Subject: [PATCH] standalone: Improve error output format --- Cargo.lock | 1 + nac3standalone/Cargo.toml | 1 + nac3standalone/src/main.rs | 8 +++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index f3f8569..ac89ca0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -705,6 +705,7 @@ version = "0.1.0" dependencies = [ "clap", "inkwell", + "itertools 0.11.0", "nac3core", "nac3parser", "parking_lot", diff --git a/nac3standalone/Cargo.toml b/nac3standalone/Cargo.toml index a2d1855..2823bdd 100644 --- a/nac3standalone/Cargo.toml +++ b/nac3standalone/Cargo.toml @@ -5,6 +5,7 @@ authors = ["M-Labs"] edition = "2021" [dependencies] +itertools = "0.11" parking_lot = "0.12" nac3parser = { path = "../nac3parser" } nac3core = { path = "../nac3core" } diff --git a/nac3standalone/src/main.rs b/nac3standalone/src/main.rs index 9deb34e..260af3b 100644 --- a/nac3standalone/src/main.rs +++ b/nac3standalone/src/main.rs @@ -6,6 +6,7 @@ use inkwell::{ targets::*, OptimizationLevel, }; +use itertools::Itertools; use parking_lot::{Mutex, RwLock}; use std::{borrow::Borrow, collections::HashMap, fs, path::Path, sync::Arc}; @@ -296,7 +297,12 @@ fn main() { let signature = store.from_signature(&mut composer.unifier, &primitive, &signature, &mut cache); let signature = store.add_cty(signature); - composer.start_analysis(true).unwrap(); + if let Err(errs) = composer.start_analysis(true) { + panic!( + "compilation failed\n----------\n{}", + errs.into_iter().sorted().join("\n----------\n") + ); + } let top_level = Arc::new(composer.make_top_level_context());