Skip to content

Commit

Permalink
Merge pull request #5601 from eiei114/fix/replace_panic_with_internal…
Browse files Browse the repository at this point in the history
…_error

fix/replace_panic_with_internal_error
  • Loading branch information
bhansconnect authored Jul 1, 2023
2 parents 279b9b2 + 6ddd6b8 commit 96b73d9
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 12 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions crates/repl_cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ roc_reporting = { path = "../reporting" }
roc_std = { path = "../roc_std" }
roc_target = { path = "../compiler/roc_target" }
roc_types = { path = "../compiler/types" }
roc_error_macros = { path = "../error_macros" }

bumpalo.workspace = true
const_format.workspace = true
Expand Down
8 changes: 3 additions & 5 deletions crates/repl_cli/src/cli_gen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use inkwell::context::Context;
use libloading::Library;
use roc_build::link::llvm_module_to_dylib;
use roc_collections::all::MutSet;
use roc_error_macros::internal_error;
use roc_gen_llvm::llvm::build::LlvmBackendMode;
use roc_gen_llvm::llvm::externs::add_default_roc_externs;
use roc_gen_llvm::{run_jit_function, run_jit_function_dynamic_type};
Expand Down Expand Up @@ -263,7 +264,7 @@ fn mono_module_to_dylib<'a>(
if main_fn.verify(true) {
function_pass.run_on(&main_fn);
} else {
panic!("Main function {} failed LLVM verification in build. Uncomment things nearby to see more details.", main_fn_name);
internal_error!("Main function {} failed LLVM verification in build. Uncomment things nearby to see more details.", main_fn_name);
}

module_pass.run_on(env.module);
Expand All @@ -273,10 +274,7 @@ fn mono_module_to_dylib<'a>(

// Verify the module
if let Err(errors) = env.module.verify() {
panic!(
"Errors defining module:\n{}\n\nUncomment things nearby to see more details.",
errors.to_string()
);
internal_error!("Errors defining module:\n{}", errors.to_string());
}

llvm_module_to_dylib(env.module, &target, opt_level)
Expand Down
5 changes: 3 additions & 2 deletions crates/repl_expect/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ pub fn get_values<'a>(
mod test {
use indoc::indoc;
use pretty_assertions::assert_eq;
use roc_error_macros::internal_error;
use roc_gen_llvm::{llvm::build::LlvmBackendMode, run_roc::RocCallResult, run_roc_dylib};
use roc_load::{ExecutionMode, LoadConfig, LoadMonomorphizedError, Threading};
use roc_packaging::cache::RocCacheDir;
Expand Down Expand Up @@ -136,9 +137,9 @@ mod test {
) {
Ok(m) => m,
Err(LoadMonomorphizedError::ErrorModule(m)) => {
panic!("{:?}", (m.can_problems, m.type_problems))
internal_error!("{:?}", (m.can_problems, m.type_problems))
}
Err(e) => panic!("{e:?}"),
Err(e) => internal_error!("{e:?}"),
};

let mut loaded = loaded;
Expand Down
10 changes: 5 additions & 5 deletions crates/repl_expect/src/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ fn run_expect_fx<'a, W: std::io::Write>(
try_run_jit_function!(lib, expect.name, (), |v: ()| v);

if let Err((msg, _)) = result {
panic!("roc panic {}", msg);
internal_error!("roc panic {}", msg);
}

if sequence.count_failures() > 0 {
Expand Down Expand Up @@ -518,7 +518,7 @@ fn render_dbg_failure<'a>(
let data = expectations.get_mut(&module_id).unwrap();

let current = match data.dbgs.get(&dbg_symbol) {
None => panic!("region {failure_region:?} not in list of dbgs"),
None => internal_error!("region {failure_region:?} not in list of dbgs"),
Some(current) => current,
};
let failure_region = current.region;
Expand Down Expand Up @@ -565,7 +565,7 @@ fn render_expect_failure<'a>(
let data = expectations.get_mut(&module_id).unwrap();

let current = match data.expectations.get(&failure_region) {
None => panic!("region {failure_region:?} not in list of expects"),
None => internal_error!("region {failure_region:?} not in list of expects"),
Some(current) => current,
};

Expand Down Expand Up @@ -638,7 +638,7 @@ impl ExpectSequence {
0 => std::hint::spin_loop(),
1 => break ChildProcessMsg::Expect,
2 => break ChildProcessMsg::Dbg,
n => panic!("invalid atomic value set by the child: {:#x}", n),
n => internal_error!("invalid atomic value set by the child: {:#x}", n),
}
}
}
Expand Down Expand Up @@ -815,7 +815,7 @@ pub fn expect_mono_module_to_dylib<'a>(
if let Err(errors) = env.module.verify() {
let path = std::env::temp_dir().join("test.ll");
env.module.print_to_file(&path).unwrap();
panic!(
internal_error!(
"Errors defining module:\n{}\n\nUncomment things nearby to see more details. IR written to `{:?}`",
errors.to_string(), path,
);
Expand Down

0 comments on commit 96b73d9

Please sign in to comment.