From f6f356ec6846b00044812cdda25c744d0f8830e3 Mon Sep 17 00:00:00 2001 From: Alextopher Date: Mon, 21 Oct 2024 08:40:54 -0400 Subject: [PATCH 1/4] yew-macro: remove transitive dependency on syn 1 --- Cargo.lock | 24 ++++++++++++++++++- packages/yew-macro/Cargo.toml | 3 +-- packages/yew-macro/src/hook/body.rs | 2 +- packages/yew-macro/src/hook/mod.rs | 2 +- packages/yew-macro/src/hook/signature.rs | 2 +- .../yew-macro/src/html_tree/html_element.rs | 2 +- packages/yew-macro/src/html_tree/lint/mod.rs | 2 +- packages/yew-macro/src/lib.rs | 8 +++---- 8 files changed, 33 insertions(+), 12 deletions(-) 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..b44db0df0b5 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"] } @@ -31,4 +31,3 @@ yew = { path = "../yew" } [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); From be530a556e6374cba2e97021bd0f9b87df84bc19 Mon Sep 17 00:00:00 2001 From: Alextopher Date: Mon, 21 Oct 2024 12:07:40 -0400 Subject: [PATCH 2/4] enable nightly feature on proc-macro-error2 --- packages/yew-macro/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/yew-macro/Cargo.toml b/packages/yew-macro/Cargo.toml index b44db0df0b5..6a39bb8a33d 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-error2 = "2" +proc-macro-error2 = { version = "2", features = ["nightly"] } proc-macro2 = "1" quote = "1" syn = { version = "2", features = ["full", "extra-traits", "visit-mut"] } From 8b7fe0e2558ec5ba6f4e766bde18490ec05f75da Mon Sep 17 00:00:00 2001 From: Alextopher Date: Mon, 21 Oct 2024 12:21:33 -0400 Subject: [PATCH 3/4] does this work? --- packages/yew-macro/Cargo.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/yew-macro/Cargo.toml b/packages/yew-macro/Cargo.toml index 6a39bb8a33d..c9d47913a76 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-error2 = { version = "2", features = ["nightly"] } +proc-macro-error2 = "2" proc-macro2 = "1" quote = "1" syn = { version = "2", features = ["full", "extra-traits", "visit-mut"] } @@ -29,5 +29,9 @@ rustversion = "1" trybuild = "1" yew = { path = "../yew" } +[features] +default = [] +nightly_yew = ["proc-macro-error2/nightly"] + [lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(nightly_yew)'] } From 37452a52a0a2db1c9c926ed0816b10871082a358 Mon Sep 17 00:00:00 2001 From: Elina Date: Fri, 13 Dec 2024 16:48:30 +0800 Subject: [PATCH 4/4] Enable proc-macro-error2/nightly when cfg(nightly_yew) --- packages/yew-macro/Cargo.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/yew-macro/Cargo.toml b/packages/yew-macro/Cargo.toml index c9d47913a76..83ae5be75fe 100644 --- a/packages/yew-macro/Cargo.toml +++ b/packages/yew-macro/Cargo.toml @@ -29,9 +29,8 @@ rustversion = "1" trybuild = "1" yew = { path = "../yew" } -[features] -default = [] -nightly_yew = ["proc-macro-error2/nightly"] +[target.'cfg(nightly_yew)'.dependencies] +proc-macro-error2 = { version = "2", features = ["nightly"] } [lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(nightly_yew)'] }