From ce570c4787c6746b7b61d7d27e9c907ecbd5bf0d Mon Sep 17 00:00:00 2001 From: Dominic Date: Fri, 20 Nov 2020 01:12:20 +0100 Subject: [PATCH] allow &mut State in async fn (needs test) --- derive/src/method.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/derive/src/method.rs b/derive/src/method.rs index dc14359..a791637 100644 --- a/derive/src/method.rs +++ b/derive/src/method.rs @@ -364,10 +364,10 @@ pub fn expand_method(method: Method, mut attrs: AttributeArgs, fun: ItemFn) -> R let mut block = quote!(#fun_ident(#(#args_pass),*)); let mut state_block = quote!(); if fun_is_async { - if let Some(arg) = args.iter().find(|arg| (*arg).ty.is_state_ref()) { + if let Some(arg) = args.iter().find(|arg| matches!((*arg).ty, MethodArgumentType::StateRef)) { return Err(Error::new( arg.span(), - "async fn must not take &State as an argument as State is not Sync, consider boxing" + "async fn must not take &State as an argument as State is not Sync, consider taking &mut State" )); } block = quote!(#block.await);