diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-03-17 13:19:06 +0100 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-03-24 06:28:56 +0100 |
| commit | 0e0f9311dacad865c43953a1015ac00a010e19df (patch) | |
| tree | 47a2bdb387baf531c435b0595075d4d2314d3da1 | |
| parent | 2868045a28f959e612185022688c4469e0b752cd (diff) | |
| download | rust-0e0f9311dacad865c43953a1015ac00a010e19df.tar.gz rust-0e0f9311dacad865c43953a1015ac00a010e19df.zip | |
defatalize get_test_runner
| -rw-r--r-- | src/librustc_builtin_macros/test_harness.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/librustc_builtin_macros/test_harness.rs b/src/librustc_builtin_macros/test_harness.rs index b87767f4a41..160a5204eaf 100644 --- a/src/librustc_builtin_macros/test_harness.rs +++ b/src/librustc_builtin_macros/test_harness.rs @@ -345,14 +345,14 @@ fn is_test_case(i: &ast::Item) -> bool { fn get_test_runner(sd: &rustc_errors::Handler, krate: &ast::Crate) -> Option<ast::Path> { let test_attr = attr::find_by_name(&krate.attrs, sym::test_runner)?; - test_attr.meta_item_list().map(|meta_list| { - if meta_list.len() != 1 { - sd.span_fatal(test_attr.span, "`#![test_runner(..)]` accepts exactly 1 argument") - .raise() - } - match meta_list[0].meta_item() { - Some(meta_item) if meta_item.is_word() => meta_item.path.clone(), - _ => sd.span_fatal(test_attr.span, "`test_runner` argument must be a path").raise(), - } - }) + let meta_list = test_attr.meta_item_list()?; + let span = test_attr.span; + match &*meta_list { + [single] => match single.meta_item() { + Some(meta_item) if meta_item.is_word() => return Some(meta_item.path.clone()), + _ => sd.struct_span_err(span, "`test_runner` argument must be a path").emit(), + }, + _ => sd.struct_span_err(span, "`#![test_runner(..)]` accepts exactly 1 argument").emit(), + } + None } |
