diff --git a/Cargo.lock b/Cargo.lock index 6063cb22d8d..cb2cee40b3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2469,6 +2469,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+/~https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+/~https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.79", +] + [[package]] name = "proc-macro2" version = "1.0.86" @@ -4056,7 +4078,7 @@ version = "0.21.0" dependencies = [ "once_cell", "prettyplease", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "rustversion", diff --git a/packages/yew-macro/Cargo.toml b/packages/yew-macro/Cargo.toml index 7825f2850f7..83ae5be75fe 100644 --- a/packages/yew-macro/Cargo.toml +++ b/packages/yew-macro/Cargo.toml @@ -16,7 +16,7 @@ rust-version = "1.76.0" proc-macro = true [dependencies] -proc-macro-error = "1" +proc-macro-error2 = "2" proc-macro2 = "1" quote = "1" syn = { version = "2", features = ["full", "extra-traits", "visit-mut"] } @@ -29,6 +29,8 @@ rustversion = "1" trybuild = "1" yew = { path = "../yew" } +[target.'cfg(nightly_yew)'.dependencies] +proc-macro-error2 = { version = "2", features = ["nightly"] } + [lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(nightly_yew)'] } - diff --git a/packages/yew-macro/src/hook/body.rs b/packages/yew-macro/src/hook/body.rs index ff49193e36b..0ded2bc1f95 100644 --- a/packages/yew-macro/src/hook/body.rs +++ b/packages/yew-macro/src/hook/body.rs @@ -1,6 +1,6 @@ use std::sync::{Arc, Mutex}; -use proc_macro_error::emit_error; +use proc_macro_error2::emit_error; use syn::spanned::Spanned; use syn::visit_mut::VisitMut; use syn::{ diff --git a/packages/yew-macro/src/hook/mod.rs b/packages/yew-macro/src/hook/mod.rs index a60ecbd551d..9437c42af72 100644 --- a/packages/yew-macro/src/hook/mod.rs +++ b/packages/yew-macro/src/hook/mod.rs @@ -1,5 +1,5 @@ use proc_macro2::{Span, TokenStream}; -use proc_macro_error::emit_error; +use proc_macro_error2::emit_error; use quote::quote; use syn::parse::{Parse, ParseStream}; use syn::{ diff --git a/packages/yew-macro/src/hook/signature.rs b/packages/yew-macro/src/hook/signature.rs index f4772619df4..73eb1c74a36 100644 --- a/packages/yew-macro/src/hook/signature.rs +++ b/packages/yew-macro/src/hook/signature.rs @@ -1,5 +1,5 @@ use proc_macro2::{Span, TokenStream}; -use proc_macro_error::emit_error; +use proc_macro_error2::emit_error; use quote::{quote, ToTokens}; use syn::spanned::Spanned; use syn::visit_mut::VisitMut; diff --git a/packages/yew-macro/src/html_tree/html_element.rs b/packages/yew-macro/src/html_tree/html_element.rs index ee588305de6..98d70a7a972 100644 --- a/packages/yew-macro/src/html_tree/html_element.rs +++ b/packages/yew-macro/src/html_tree/html_element.rs @@ -1,5 +1,5 @@ use proc_macro2::{Delimiter, Group, Span, TokenStream}; -use proc_macro_error::emit_warning; +use proc_macro_error2::emit_warning; use quote::{quote, quote_spanned, ToTokens}; use syn::buffer::Cursor; use syn::parse::{Parse, ParseStream}; diff --git a/packages/yew-macro/src/html_tree/lint/mod.rs b/packages/yew-macro/src/html_tree/lint/mod.rs index 82b0c351f04..de7934942fd 100644 --- a/packages/yew-macro/src/html_tree/lint/mod.rs +++ b/packages/yew-macro/src/html_tree/lint/mod.rs @@ -1,7 +1,7 @@ //! Lints to catch possible misuse of the `html!` macro use. At the moment these are mostly focused //! on accessibility. -use proc_macro_error::emit_warning; +use proc_macro_error2::emit_warning; use syn::spanned::Spanned; use super::html_element::{HtmlElement, TagName}; diff --git a/packages/yew-macro/src/lib.rs b/packages/yew-macro/src/lib.rs index acc0d4f8dfa..65f0e3dae65 100644 --- a/packages/yew-macro/src/lib.rs +++ b/packages/yew-macro/src/lib.rs @@ -112,14 +112,14 @@ pub fn derive_props(input: TokenStream) -> TokenStream { TokenStream::from(input.into_token_stream()) } -#[proc_macro_error::proc_macro_error] +#[proc_macro_error2::proc_macro_error] #[proc_macro] pub fn html_nested(input: TokenStream) -> TokenStream { let root = parse_macro_input!(input as HtmlRoot); TokenStream::from(root.into_token_stream()) } -#[proc_macro_error::proc_macro_error] +#[proc_macro_error2::proc_macro_error] #[proc_macro] pub fn html(input: TokenStream) -> TokenStream { let root = parse_macro_input!(input as HtmlRootVNode); @@ -138,7 +138,7 @@ pub fn classes(input: TokenStream) -> TokenStream { TokenStream::from(classes.into_token_stream()) } -#[proc_macro_error::proc_macro_error] +#[proc_macro_error2::proc_macro_error] #[proc_macro_attribute] pub fn function_component(attr: TokenStream, item: TokenStream) -> proc_macro::TokenStream { let item = parse_macro_input!(item as FunctionComponent); @@ -149,7 +149,7 @@ pub fn function_component(attr: TokenStream, item: TokenStream) -> proc_macro::T .into() } -#[proc_macro_error::proc_macro_error] +#[proc_macro_error2::proc_macro_error] #[proc_macro_attribute] pub fn hook(attr: TokenStream, item: TokenStream) -> proc_macro::TokenStream { let item = parse_macro_input!(item as HookFn);