From 837b550238aa671a591ccf282dddeab29cadb206 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 18 May 2024 04:49:42 +0200 Subject: Merging upstream version 1.71.1+dfsg1. Signed-off-by: Daniel Baumann --- vendor/syn-1.0.109/tests/macros/mod.rs | 79 ++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 vendor/syn-1.0.109/tests/macros/mod.rs (limited to 'vendor/syn-1.0.109/tests/macros') diff --git a/vendor/syn-1.0.109/tests/macros/mod.rs b/vendor/syn-1.0.109/tests/macros/mod.rs new file mode 100644 index 000000000..5ca88b083 --- /dev/null +++ b/vendor/syn-1.0.109/tests/macros/mod.rs @@ -0,0 +1,79 @@ +#![allow(unused_macros, unused_macro_rules)] + +#[path = "../debug/mod.rs"] +pub mod debug; + +use syn::parse::{Parse, Result}; + +macro_rules! errorf { + ($($tt:tt)*) => {{ + use ::std::io::Write; + let stderr = ::std::io::stderr(); + write!(stderr.lock(), $($tt)*).unwrap(); + }}; +} + +macro_rules! punctuated { + ($($e:expr,)+) => {{ + let mut seq = ::syn::punctuated::Punctuated::new(); + $( + seq.push($e); + )+ + seq + }}; + + ($($e:expr),+) => { + punctuated!($($e,)+) + }; +} + +macro_rules! snapshot { + ($($args:tt)*) => { + snapshot_impl!(() $($args)*) + }; +} + +macro_rules! snapshot_impl { + (($expr:ident) as $t:ty, @$snapshot:literal) => { + let $expr = crate::macros::Tokens::parse::<$t>($expr).unwrap(); + let debug = crate::macros::debug::Lite(&$expr); + if !cfg!(miri) { + insta::assert_debug_snapshot!(debug, @$snapshot); + } + }; + (($($expr:tt)*) as $t:ty, @$snapshot:literal) => {{ + let syntax_tree = crate::macros::Tokens::parse::<$t>($($expr)*).unwrap(); + let debug = crate::macros::debug::Lite(&syntax_tree); + if !cfg!(miri) { + insta::assert_debug_snapshot!(debug, @$snapshot); + } + syntax_tree + }}; + (($($expr:tt)*) , @$snapshot:literal) => {{ + let syntax_tree = $($expr)*; + let debug = crate::macros::debug::Lite(&syntax_tree); + if !cfg!(miri) { + insta::assert_debug_snapshot!(debug, @$snapshot); + } + syntax_tree + }}; + (($($expr:tt)*) $next:tt $($rest:tt)*) => { + snapshot_impl!(($($expr)* $next) $($rest)*) + }; +} + +pub trait Tokens { + fn parse(self) -> Result; +} + +impl<'a> Tokens for &'a str { + fn parse(self) -> Result { + syn::parse_str(self) + } +} + +impl Tokens for proc_macro2::TokenStream { + fn parse(self) -> Result { + syn::parse2(self) + } +} -- cgit v1.2.3