From e325ad24f2ef170b2913d97a69da38ca664cb621 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Mon, 23 Dec 2019 17:44:02 +0100 Subject: [PATCH] support main functions with Result return type --- src/eval.rs | 5 ++--- tests/run-pass/main_result.rs | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 tests/run-pass/main_result.rs diff --git a/src/eval.rs b/src/eval.rs index 4ed1b272b228..0cc302b967b2 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -62,9 +62,8 @@ pub fn create_ecx<'mir, 'tcx: 'mir>( // Setup first stack-frame let main_instance = ty::Instance::mono(tcx, main_id); let main_mir = ecx.load_mir(main_instance.def, None)?; - - if !main_mir.return_ty().is_unit() || main_mir.arg_count != 0 { - throw_unsup_format!("miri does not support main functions without `fn()` type signatures"); + if main_mir.arg_count != 0 { + bug!("main function must not take any arguments"); } let start_id = tcx.lang_items().start_fn().unwrap(); diff --git a/tests/run-pass/main_result.rs b/tests/run-pass/main_result.rs new file mode 100644 index 000000000000..078760ee6667 --- /dev/null +++ b/tests/run-pass/main_result.rs @@ -0,0 +1,3 @@ +fn main() -> Result<(), Box> { + Ok(()) +}