aboutsummaryrefslogtreecommitdiff
path: root/src/entry.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/entry.rs')
-rw-r--r--src/entry.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/entry.rs b/src/entry.rs
index 01f8ee4..5cb4a49 100644
--- a/src/entry.rs
+++ b/src/entry.rs
@@ -339,17 +339,17 @@ fn parse_knobs(mut input: syn::ItemFn, is_test: bool, config: FinalConfig) -> To
let body = &input.block;
let brace_token = input.block.brace_token;
let (tail_return, tail_semicolon) = match body.stmts.last() {
- Some(syn::Stmt::Semi(expr, _)) => match expr {
- syn::Expr::Return(_) => (quote! { return }, quote! { ; }),
- _ => match &input.sig.output {
+ Some(syn::Stmt::Semi(syn::Expr::Return(_), _)) => (quote! { return }, quote! { ; }),
+ Some(syn::Stmt::Semi(..)) | Some(syn::Stmt::Local(..)) | None => {
+ match &input.sig.output {
syn::ReturnType::Type(_, ty) if matches!(&**ty, syn::Type::Tuple(ty) if ty.elems.is_empty()) =>
{
(quote! {}, quote! { ; }) // unit
}
syn::ReturnType::Default => (quote! {}, quote! { ; }), // unit
syn::ReturnType::Type(..) => (quote! {}, quote! {}), // ! or another
- },
- },
+ }
+ }
_ => (quote! {}, quote! {}),
};
input.block = syn::parse2(quote_spanned! {last_stmt_end_span=>