diff --git a/cortex-m-rt/macros/Cargo.toml b/cortex-m-rt/macros/Cargo.toml index 1058c5d5..7f4348fc 100644 --- a/cortex-m-rt/macros/Cargo.toml +++ b/cortex-m-rt/macros/Cargo.toml @@ -19,4 +19,4 @@ proc-macro2 = "1.0" [dependencies.syn] features = ["extra-traits", "full"] -version = "2.0" +version = "3.0" diff --git a/cortex-m-rt/macros/src/lib.rs b/cortex-m-rt/macros/src/lib.rs index 94e4e29d..bd9155a8 100644 --- a/cortex-m-rt/macros/src/lib.rs +++ b/cortex-m-rt/macros/src/lib.rs @@ -240,7 +240,7 @@ pub fn exception(args: TokenStream, input: TokenStream) -> TokenStream { } }; - if f.sig.unsafety.is_none() { + if !matches!(f.sig.safety, syn::Safety::Unsafe(_)) { match exn { Exception::DefaultHandler | Exception::HardFault(_) | Exception::NonMaskableInt => { // These are unsafe to define. @@ -635,7 +635,7 @@ pub fn pre_init(args: TokenStream, input: TokenStream) -> TokenStream { // check the function signature let valid_signature = f.sig.constness.is_none() && f.vis == Visibility::Inherited - && f.sig.unsafety.is_some() + && matches!(f.sig.safety, syn::Safety::Unsafe(_)) && f.sig.abi.is_none() && f.sig.inputs.is_empty() && f.sig.generics.params.is_empty() diff --git a/cortex-m/macros/Cargo.toml b/cortex-m/macros/Cargo.toml index 143ac8d6..4441a303 100644 --- a/cortex-m/macros/Cargo.toml +++ b/cortex-m/macros/Cargo.toml @@ -15,7 +15,7 @@ proc-macro = true [dependencies] proc-macro2 = "1.0.106" quote = "1.0.45" -syn = { version = "2.0.117", features = ["extra-traits", "full"] } +syn = { version = ">= 2.0.117, < 4", features = ["extra-traits", "full"] } [dev-dependencies] macrotest = "1.2.1"