aboutsummaryrefslogtreecommitdiff
path: root/syn/tests
diff options
context:
space:
mode:
Diffstat (limited to 'syn/tests')
-rw-r--r--syn/tests/common/eq.rs459
-rw-r--r--syn/tests/common/mod.rs19
-rw-r--r--syn/tests/common/parse.rs49
-rw-r--r--syn/tests/debug/gen.rs5633
-rw-r--r--syn/tests/debug/mod.rs110
-rw-r--r--syn/tests/features/error.rs1
-rw-r--r--syn/tests/features/mod.rs22
-rw-r--r--syn/tests/macros/mod.rs76
-rw-r--r--syn/tests/repo/mod.rs109
-rw-r--r--syn/tests/repo/progress.rs37
-rw-r--r--syn/tests/test_asyncness.rs39
-rw-r--r--syn/tests/test_attribute.rs296
-rw-r--r--syn/tests/test_derive_input.rs894
-rw-r--r--syn/tests/test_expr.rs37
-rw-r--r--syn/tests/test_generics.rs285
-rw-r--r--syn/tests/test_grouping.rs55
-rw-r--r--syn/tests/test_ident.rs87
-rw-r--r--syn/tests/test_iterators.rs51
-rw-r--r--syn/tests/test_lit.rs184
-rw-r--r--syn/tests/test_meta.rs341
-rw-r--r--syn/tests/test_parse_buffer.rs53
-rw-r--r--syn/tests/test_pat.rs20
-rw-r--r--syn/tests/test_precedence.rs394
-rw-r--r--syn/tests/test_receiver.rs109
-rw-r--r--syn/tests/test_round_trip.rs151
-rw-r--r--syn/tests/test_should_parse.rs47
-rw-r--r--syn/tests/test_size.rs31
-rw-r--r--syn/tests/test_token_trees.rs28
-rw-r--r--syn/tests/test_visibility.rs99
-rw-r--r--syn/tests/zzz_stable.rs33
30 files changed, 0 insertions, 9749 deletions
diff --git a/syn/tests/common/eq.rs b/syn/tests/common/eq.rs
deleted file mode 100644
index 098f833..0000000
--- a/syn/tests/common/eq.rs
+++ /dev/null
@@ -1,459 +0,0 @@
-extern crate rustc_data_structures;
-extern crate rustc_span;
-extern crate rustc_target;
-extern crate syntax;
-
-use std::mem;
-
-use rustc_data_structures::sync::Lrc;
-use rustc_data_structures::thin_vec::ThinVec;
-use rustc_span::{Span, SyntaxContext, DUMMY_SP};
-use syntax::ast::{
- AngleBracketedArgs, AnonConst, Arm, AsmDialect, AssocItem, AssocItemKind, AssocTyConstraint,
- AssocTyConstraintKind, AttrId, AttrItem, AttrKind, AttrStyle, Attribute, BareFnTy, BinOpKind,
- BindingMode, Block, BlockCheckMode, BorrowKind, CaptureBy, Constness, Crate, CrateSugar,
- Defaultness, EnumDef, Expr, ExprKind, Extern, Field, FieldPat, FloatTy, FnDecl, FnHeader,
- FnSig, ForeignItem, ForeignItemKind, ForeignMod, FunctionRetTy, GenericArg, GenericArgs,
- GenericBound, GenericParam, GenericParamKind, Generics, GlobalAsm, Ident, ImplPolarity,
- InlineAsm, InlineAsmOutput, IntTy, IsAsync, IsAuto, Item, ItemKind, Label, Lifetime, Lit,
- LitFloatType, LitIntType, LitKind, Local, Mac, MacArgs, MacDelimiter, MacStmtStyle, MacroDef,
- Mod, Movability, MutTy, Mutability, NodeId, Param, ParenthesizedArgs, Pat, PatKind, Path,
- PathSegment, PolyTraitRef, QSelf, RangeEnd, RangeLimits, RangeSyntax, Stmt, StmtKind, StrLit,
- StrStyle, StructField, TraitBoundModifier, TraitObjectSyntax, TraitRef, Ty, TyKind, UintTy,
- UnOp, UnsafeSource, Unsafety, UseTree, UseTreeKind, Variant, VariantData, VisibilityKind,
- WhereBoundPredicate, WhereClause, WhereEqPredicate, WherePredicate, WhereRegionPredicate,
-};
-use syntax::ptr::P;
-use syntax::source_map::Spanned;
-use syntax::symbol::{sym, Symbol};
-use syntax::token::{self, DelimToken, Token, TokenKind};
-use syntax::tokenstream::{DelimSpan, TokenStream, TokenTree};
-use syntax::util::comments;
-
-pub trait SpanlessEq {
- fn eq(&self, other: &Self) -> bool;
-}
-
-impl<T: SpanlessEq> SpanlessEq for P<T> {
- fn eq(&self, other: &Self) -> bool {
- SpanlessEq::eq(&**self, &**other)
- }
-}
-
-impl<T: SpanlessEq> SpanlessEq for Lrc<T> {
- fn eq(&self, other: &Self) -> bool {
- SpanlessEq::eq(&**self, &**other)
- }
-}
-
-impl<T: SpanlessEq> SpanlessEq for Option<T> {
- fn eq(&self, other: &Self) -> bool {
- match (self, other) {
- (None, None) => true,
- (Some(this), Some(other)) => SpanlessEq::eq(this, other),
- _ => false,
- }
- }
-}
-
-impl<T: SpanlessEq> SpanlessEq for Vec<T> {
- fn eq(&self, other: &Self) -> bool {
- self.len() == other.len() && self.iter().zip(other).all(|(a, b)| SpanlessEq::eq(a, b))
- }
-}
-
-impl<T: SpanlessEq> SpanlessEq for ThinVec<T> {
- fn eq(&self, other: &Self) -> bool {
- self.len() == other.len()
- && self
- .iter()
- .zip(other.iter())
- .all(|(a, b)| SpanlessEq::eq(a, b))
- }
-}
-
-impl<T: SpanlessEq> SpanlessEq for Spanned<T> {
- fn eq(&self, other: &Self) -> bool {
- SpanlessEq::eq(&self.node, &other.node)
- }
-}
-
-impl<A: SpanlessEq, B: SpanlessEq> SpanlessEq for (A, B) {
- fn eq(&self, other: &Self) -> bool {
- SpanlessEq::eq(&self.0, &other.0) && SpanlessEq::eq(&self.1, &other.1)
- }
-}
-
-impl<A: SpanlessEq, B: SpanlessEq, C: SpanlessEq> SpanlessEq for (A, B, C) {
- fn eq(&self, other: &Self) -> bool {
- SpanlessEq::eq(&self.0, &other.0)
- && SpanlessEq::eq(&self.1, &other.1)
- && SpanlessEq::eq(&self.2, &other.2)
- }
-}
-
-macro_rules! spanless_eq_true {
- ($name:ident) => {
- impl SpanlessEq for $name {
- fn eq(&self, _other: &Self) -> bool {
- true
- }
- }
- };
-}
-
-spanless_eq_true!(Span);
-spanless_eq_true!(DelimSpan);
-spanless_eq_true!(AttrId);
-spanless_eq_true!(NodeId);
-spanless_eq_true!(SyntaxContext);
-
-macro_rules! spanless_eq_partial_eq {
- ($name:ident) => {
- impl SpanlessEq for $name {
- fn eq(&self, other: &Self) -> bool {
- PartialEq::eq(self, other)
- }
- }
- };
-}
-
-spanless_eq_partial_eq!(bool);
-spanless_eq_partial_eq!(u8);
-spanless_eq_partial_eq!(u16);
-spanless_eq_partial_eq!(u128);
-spanless_eq_partial_eq!(usize);
-spanless_eq_partial_eq!(char);
-spanless_eq_partial_eq!(Symbol);
-spanless_eq_partial_eq!(DelimToken);
-
-macro_rules! spanless_eq_struct {
- {
- $name:ident;
- $([$field:ident $other:ident])*
- $(![$ignore:ident])*
- } => {
- impl SpanlessEq for $name {
- fn eq(&self, other: &Self) -> bool {
- let $name { $($field,)* $($ignore: _,)* } = self;
- let $name { $($field: $other,)* $($ignore: _,)* } = other;
- $(SpanlessEq::eq($field, $other))&&*
- }
- }
- };
-
- {
- $name:ident;
- $([$field:ident $other:ident])*
- $next:ident
- $($rest:ident)*
- $(!$ignore:ident)*
- } => {
- spanless_eq_struct! {
- $name;
- $([$field $other])*
- [$next other]
- $($rest)*
- $(!$ignore)*
- }
- };
-
- {
- $name:ident;
- $([$field:ident $other:ident])*
- $(![$ignore:ident])*
- !$next:ident
- $(!$rest:ident)*
- } => {
- spanless_eq_struct! {
- $name;
- $([$field $other])*
- $(![$ignore])*
- ![$next]
- $(!$rest)*
- }
- };
-}
-
-macro_rules! spanless_eq_enum {
- {
- $name:ident;
- $([$variant:ident $([$field:tt $this:ident $other:ident])*])*
- } => {
- impl SpanlessEq for $name {
- fn eq(&self, other: &Self) -> bool {
- match self {
- $(
- $name::$variant { .. } => {}
- )*
- }
- #[allow(unreachable_patterns)]
- match (self, other) {
- $(
- (
- $name::$variant { $($field: $this),* },
- $name::$variant { $($field: $other),* },
- ) => {
- true $(&& SpanlessEq::eq($this, $other))*
- }
- )*
- _ => false,
- }
- }
- }
- };
-
- {
- $name:ident;
- $([$variant:ident $($fields:tt)*])*
- $next:ident [$($named:tt)*] ( $i:tt $($field:tt)* )
- $($rest:tt)*
- } => {
- spanless_eq_enum! {
- $name;
- $([$variant $($fields)*])*
- $next [$($named)* [$i this other]] ( $($field)* )
- $($rest)*
- }
- };
-
- {
- $name:ident;
- $([$variant:ident $($fields:tt)*])*
- $next:ident [$($named:tt)*] ()
- $($rest:tt)*
- } => {
- spanless_eq_enum! {
- $name;
- $([$variant $($fields)*])*
- [$next $($named)*]
- $($rest)*
- }
- };
-
- {
- $name:ident;
- $([$variant:ident $($fields:tt)*])*
- $next:ident ( $($field:tt)* )
- $($rest:tt)*
- } => {
- spanless_eq_enum! {
- $name;
- $([$variant $($fields)*])*
- $next [] ( $($field)* )
- $($rest)*
- }
- };
-
- {
- $name:ident;
- $([$variant:ident $($fields:tt)*])*
- $next:ident
- $($rest:tt)*
- } => {
- spanless_eq_enum! {
- $name;
- $([$variant $($fields)*])*
- [$next]
- $($rest)*
- }
- };
-}
-
-spanless_eq_struct!(AngleBracketedArgs; span args constraints);
-spanless_eq_struct!(AnonConst; id value);
-spanless_eq_struct!(Arm; attrs pat guard body span id is_placeholder);
-spanless_eq_struct!(AssocItem; attrs id span vis ident defaultness generics kind !tokens);
-spanless_eq_struct!(AssocTyConstraint; id ident kind span);
-spanless_eq_struct!(AttrItem; path args);
-spanless_eq_struct!(Attribute; kind id style span);
-spanless_eq_struct!(BareFnTy; unsafety ext generic_params decl);
-spanless_eq_struct!(Block; stmts id rules span);
-spanless_eq_struct!(Crate; module attrs span);
-spanless_eq_struct!(EnumDef; variants);
-spanless_eq_struct!(Expr; id kind span attrs);
-spanless_eq_struct!(Field; attrs id span ident expr is_shorthand is_placeholder);
-spanless_eq_struct!(FieldPat; ident pat is_shorthand attrs id span is_placeholder);
-spanless_eq_struct!(FnDecl; inputs output);
-spanless_eq_struct!(FnHeader; constness asyncness unsafety ext);
-spanless_eq_struct!(FnSig; header decl);
-spanless_eq_struct!(ForeignItem; attrs id span vis ident kind tokens);
-spanless_eq_struct!(ForeignMod; abi items);
-spanless_eq_struct!(GenericParam; id ident attrs bounds is_placeholder kind);
-spanless_eq_struct!(Generics; params where_clause span);
-spanless_eq_struct!(GlobalAsm; asm);
-spanless_eq_struct!(InlineAsm; asm asm_str_style outputs inputs clobbers volatile alignstack dialect);
-spanless_eq_struct!(InlineAsmOutput; constraint expr is_rw is_indirect);
-spanless_eq_struct!(Item; attrs id span vis ident kind !tokens);
-spanless_eq_struct!(Label; ident);
-spanless_eq_struct!(Lifetime; id ident);
-spanless_eq_struct!(Lit; token kind span);
-spanless_eq_struct!(Local; pat ty init id span attrs);
-spanless_eq_struct!(Mac; path args prior_type_ascription);
-spanless_eq_struct!(MacroDef; body legacy);
-spanless_eq_struct!(Mod; inner items inline);
-spanless_eq_struct!(MutTy; ty mutbl);
-spanless_eq_struct!(Param; attrs ty pat id span is_placeholder);
-spanless_eq_struct!(ParenthesizedArgs; span inputs output);
-spanless_eq_struct!(Pat; id kind span);
-spanless_eq_struct!(Path; span segments);
-spanless_eq_struct!(PathSegment; ident id args);
-spanless_eq_struct!(PolyTraitRef; bound_generic_params trait_ref span);
-spanless_eq_struct!(QSelf; ty path_span position);
-spanless_eq_struct!(Stmt; id kind span);
-spanless_eq_struct!(StrLit; style symbol suffix span symbol_unescaped);
-spanless_eq_struct!(StructField; attrs id span vis ident ty is_placeholder);
-spanless_eq_struct!(Token; kind span);
-spanless_eq_struct!(TraitRef; path ref_id);
-spanless_eq_struct!(Ty; id kind span);
-spanless_eq_struct!(UseTree; prefix kind span);
-spanless_eq_struct!(Variant; attrs id span vis ident data disr_expr is_placeholder);
-spanless_eq_struct!(WhereBoundPredicate; span bound_generic_params bounded_ty bounds);
-spanless_eq_struct!(WhereClause; predicates span);
-spanless_eq_struct!(WhereEqPredicate; id span lhs_ty rhs_ty);
-spanless_eq_struct!(WhereRegionPredicate; span lifetime bounds);
-spanless_eq_enum!(AsmDialect; Att Intel);
-spanless_eq_enum!(AssocItemKind; Const(0 1) Fn(0 1) TyAlias(0 1) Macro(0));
-spanless_eq_enum!(AssocTyConstraintKind; Equality(ty) Bound(bounds));
-spanless_eq_enum!(AttrKind; Normal(0) DocComment(0));
-spanless_eq_enum!(AttrStyle; Outer Inner);
-spanless_eq_enum!(BinOpKind; Add Sub Mul Div Rem And Or BitXor BitAnd BitOr Shl Shr Eq Lt Le Ne Ge Gt);
-spanless_eq_enum!(BindingMode; ByRef(0) ByValue(0));
-spanless_eq_enum!(BlockCheckMode; Default Unsafe(0));
-spanless_eq_enum!(BorrowKind; Ref Raw);
-spanless_eq_enum!(CaptureBy; Value Ref);
-spanless_eq_enum!(Constness; Const NotConst);
-spanless_eq_enum!(CrateSugar; PubCrate JustCrate);
-spanless_eq_enum!(Defaultness; Default Final);
-spanless_eq_enum!(Extern; None Implicit Explicit(0));
-spanless_eq_enum!(FloatTy; F32 F64);
-spanless_eq_enum!(ForeignItemKind; Fn(0 1) Static(0 1) Ty Macro(0));
-spanless_eq_enum!(FunctionRetTy; Default(0) Ty(0));
-spanless_eq_enum!(GenericArg; Lifetime(0) Type(0) Const(0));
-spanless_eq_enum!(GenericArgs; AngleBracketed(0) Parenthesized(0));
-spanless_eq_enum!(GenericBound; Trait(0 1) Outlives(0));
-spanless_eq_enum!(GenericParamKind; Lifetime Type(default) Const(ty));
-spanless_eq_enum!(ImplPolarity; Positive Negative);
-spanless_eq_enum!(IntTy; Isize I8 I16 I32 I64 I128);
-spanless_eq_enum!(IsAsync; Async(closure_id return_impl_trait_id) NotAsync);
-spanless_eq_enum!(IsAuto; Yes No);
-spanless_eq_enum!(LitFloatType; Suffixed(0) Unsuffixed);
-spanless_eq_enum!(LitIntType; Signed(0) Unsigned(0) Unsuffixed);
-spanless_eq_enum!(MacArgs; Empty Delimited(0 1 2) Eq(0 1));
-spanless_eq_enum!(MacDelimiter; Parenthesis Bracket Brace);
-spanless_eq_enum!(MacStmtStyle; Semicolon Braces NoBraces);
-spanless_eq_enum!(Movability; Static Movable);
-spanless_eq_enum!(Mutability; Mut Not);
-spanless_eq_enum!(RangeEnd; Included(0) Excluded);
-spanless_eq_enum!(RangeLimits; HalfOpen Closed);
-spanless_eq_enum!(StmtKind; Local(0) Item(0) Expr(0) Semi(0) Mac(0));
-spanless_eq_enum!(StrStyle; Cooked Raw(0));
-spanless_eq_enum!(TokenTree; Token(0) Delimited(0 1 2));
-spanless_eq_enum!(TraitBoundModifier; None Maybe);
-spanless_eq_enum!(TraitObjectSyntax; Dyn None);
-spanless_eq_enum!(UintTy; Usize U8 U16 U32 U64 U128);
-spanless_eq_enum!(UnOp; Deref Not Neg);
-spanless_eq_enum!(UnsafeSource; CompilerGenerated UserProvided);
-spanless_eq_enum!(Unsafety; Unsafe Normal);
-spanless_eq_enum!(UseTreeKind; Simple(0 1 2) Nested(0) Glob);
-spanless_eq_enum!(VariantData; Struct(0 1) Tuple(0 1) Unit(0));
-spanless_eq_enum!(VisibilityKind; Public Crate(0) Restricted(path id) Inherited);
-spanless_eq_enum!(WherePredicate; BoundPredicate(0) RegionPredicate(0) EqPredicate(0));
-spanless_eq_enum!(ExprKind; Box(0) Array(0) Call(0 1) MethodCall(0 1) Tup(0)
- Binary(0 1 2) Unary(0 1) Lit(0) Cast(0 1) Type(0 1) Let(0 1) If(0 1 2)
- While(0 1 2) ForLoop(0 1 2 3) Loop(0 1) Match(0 1) Closure(0 1 2 3 4 5)
- Block(0 1) Async(0 1 2) Await(0) TryBlock(0) Assign(0 1 2) AssignOp(0 1 2)
- Field(0 1) Index(0 1) Range(0 1 2) Path(0 1) AddrOf(0 1 2) Break(0 1)
- Continue(0) Ret(0) InlineAsm(0) Mac(0) Struct(0 1 2) Repeat(0 1) Paren(0)
- Try(0) Yield(0) Err);
-spanless_eq_enum!(ItemKind; ExternCrate(0) Use(0) Static(0 1 2) Const(0 1)
- Fn(0 1 2) Mod(0) ForeignMod(0) GlobalAsm(0) TyAlias(0 1) Enum(0 1)
- Struct(0 1) Union(0 1) Trait(0 1 2 3 4) TraitAlias(0 1) Impl(0 1 2 3 4 5 6)
- Mac(0) MacroDef(0));
-spanless_eq_enum!(LitKind; Str(0 1) ByteStr(0) Byte(0) Char(0) Int(0 1)
- Float(0 1) Bool(0) Err(0));
-spanless_eq_enum!(PatKind; Wild Ident(0 1 2) Struct(0 1 2) TupleStruct(0 1)
- Or(0) Path(0 1) Tuple(0) Box(0) Ref(0 1) Lit(0) Range(0 1 2) Slice(0) Rest
- Paren(0) Mac(0));
-spanless_eq_enum!(TyKind; Slice(0) Array(0 1) Ptr(0) Rptr(0 1) BareFn(0) Never
- Tup(0) Path(0 1) TraitObject(0 1) ImplTrait(0 1) Paren(0) Typeof(0) Infer
- ImplicitSelf Mac(0) Err CVarArgs);
-
-impl SpanlessEq for Ident {
- fn eq(&self, other: &Self) -> bool {
- self.as_str() == other.as_str()
- }
-}
-
-// Give up on comparing literals inside of macros because there are so many
-// equivalent representations of the same literal; they are tested elsewhere
-impl SpanlessEq for token::Lit {
- fn eq(&self, other: &Self) -> bool {
- mem::discriminant(self) == mem::discriminant(other)
- }
-}
-
-impl SpanlessEq for RangeSyntax {
- fn eq(&self, _other: &Self) -> bool {
- match self {
- RangeSyntax::DotDotDot | RangeSyntax::DotDotEq => true,
- }
- }
-}
-
-impl SpanlessEq for TokenKind {
- fn eq(&self, other: &Self) -> bool {
- match (self, other) {
- (TokenKind::Literal(this), TokenKind::Literal(other)) => SpanlessEq::eq(this, other),
- (TokenKind::DotDotEq, _) | (TokenKind::DotDotDot, _) => match other {
- TokenKind::DotDotEq | TokenKind::DotDotDot => true,
- _ => false,
- },
- _ => self == other,
- }
- }
-}
-
-impl SpanlessEq for TokenStream {
- fn eq(&self, other: &Self) -> bool {
- SpanlessEq::eq(&expand_tts(self), &expand_tts(other))
- }
-}
-
-fn expand_tts(tts: &TokenStream) -> Vec<TokenTree> {
- let mut tokens = Vec::new();
- for tt in tts.clone().into_trees() {
- let c = match tt {
- TokenTree::Token(Token {
- kind: TokenKind::DocComment(c),
- ..
- }) => c,
- _ => {
- tokens.push(tt);
- continue;
- }
- };
- let contents = comments::strip_doc_comment_decoration(&c.as_str());
- let style = comments::doc_comment_style(&c.as_str());
- tokens.push(TokenTree::token(TokenKind::Pound, DUMMY_SP));
- if style == AttrStyle::Inner {
- tokens.push(TokenTree::token(TokenKind::Not, DUMMY_SP));
- }
- let lit = token::Lit {
- kind: token::LitKind::Str,
- symbol: Symbol::intern(&contents),
- suffix: None,
- };
- let tts = vec![
- TokenTree::token(TokenKind::Ident(sym::doc, false), DUMMY_SP),
- TokenTree::token(TokenKind::Eq, DUMMY_SP),
- TokenTree::token(TokenKind::Literal(lit), DUMMY_SP),
- ];
- tokens.push(TokenTree::Delimited(
- DelimSpan::dummy(),
- DelimToken::Bracket,
- tts.into_iter().collect::<TokenStream>().into(),
- ));
- }
- tokens
-}
diff --git a/syn/tests/common/mod.rs b/syn/tests/common/mod.rs
deleted file mode 100644
index 3dd2552..0000000
--- a/syn/tests/common/mod.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-#![allow(dead_code)]
-
-use std::env;
-
-pub mod eq;
-pub mod parse;
-
-/// Read the `ABORT_AFTER_FAILURE` environment variable, and parse it.
-pub fn abort_after() -> usize {
- match env::var("ABORT_AFTER_FAILURE") {
- Ok(s) => s.parse().expect("failed to parse ABORT_AFTER_FAILURE"),
- Err(_) => usize::max_value(),
- }
-}
-
-/// Are we running in travis-ci.org.
-pub fn travis_ci() -> bool {
- env::var_os("TRAVIS").is_some()
-}
diff --git a/syn/tests/common/parse.rs b/syn/tests/common/parse.rs
deleted file mode 100644
index fc3bb96..0000000
--- a/syn/tests/common/parse.rs
+++ /dev/null
@@ -1,49 +0,0 @@
-extern crate rustc_expand;
-extern crate rustc_parse as parse;
-extern crate rustc_span;
-extern crate syntax;
-
-use rustc_span::FileName;
-use syntax::ast;
-use syntax::ptr::P;
-use syntax::sess::ParseSess;
-use syntax::source_map::FilePathMapping;
-
-use std::panic;
-
-pub fn libsyntax_expr(input: &str) -> Option<P<ast::Expr>> {
- match panic::catch_unwind(|| {
- let sess = ParseSess::new(FilePathMapping::empty());
- sess.span_diagnostic.set_continue_after_error(false);
- let e = parse::new_parser_from_source_str(
- &sess,
- FileName::Custom("test_precedence".to_string()),
- input.to_string(),
- )
- .parse_expr();
- match e {
- Ok(expr) => Some(expr),
- Err(mut diagnostic) => {
- diagnostic.emit();
- None
- }
- }
- }) {
- Ok(Some(e)) => Some(e),
- Ok(None) => None,
- Err(_) => {
- errorf!("libsyntax panicked\n");
- None
- }
- }
-}
-
-pub fn syn_expr(input: &str) -> Option<syn::Expr> {
- match syn::parse_str(input) {
- Ok(e) => Some(e),
- Err(msg) => {
- errorf!("syn failed to parse\n{:?}\n", msg);
- None
- }
- }
-}
diff --git a/syn/tests/debug/gen.rs b/syn/tests/debug/gen.rs
deleted file mode 100644
index 8450c09..0000000
--- a/syn/tests/debug/gen.rs
+++ /dev/null
@@ -1,5633 +0,0 @@
-// This file is @generated by syn-internal-codegen.
-// It is not intended for manual editing.
-
-use super::{Lite, RefCast};
-use std::fmt::{self, Debug};
-impl Debug for Lite<syn::Abi> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Abi");
- if let Some(val) = &_val.name {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::LitStr);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("name", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::AngleBracketedGenericArguments> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("AngleBracketedGenericArguments");
- if let Some(val) = &_val.colon2_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon2_token", Print::ref_cast(val));
- }
- if !_val.args.is_empty() {
- formatter.field("args", Lite(&_val.args));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Arm> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Arm");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- if let Some(val) = &_val.guard {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::If, Box<syn::Expr>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("guard", Print::ref_cast(val));
- }
- formatter.field("body", Lite(&_val.body));
- if let Some(val) = &_val.comma {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Comma);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("comma", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::AttrStyle> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::AttrStyle::Outer => formatter.write_str("Outer"),
- syn::AttrStyle::Inner(_val) => {
- formatter.write_str("Inner")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::Attribute> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Attribute");
- formatter.field("style", Lite(&_val.style));
- formatter.field("path", Lite(&_val.path));
- formatter.field("tokens", Lite(&_val.tokens));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::BareFnArg> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("BareFnArg");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.name {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((proc_macro2::Ident, syn::token::Colon));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.0), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("name", Print::ref_cast(val));
- }
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::BinOp> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::BinOp::Add(_val) => {
- formatter.write_str("Add")?;
- Ok(())
- }
- syn::BinOp::Sub(_val) => {
- formatter.write_str("Sub")?;
- Ok(())
- }
- syn::BinOp::Mul(_val) => {
- formatter.write_str("Mul")?;
- Ok(())
- }
- syn::BinOp::Div(_val) => {
- formatter.write_str("Div")?;
- Ok(())
- }
- syn::BinOp::Rem(_val) => {
- formatter.write_str("Rem")?;
- Ok(())
- }
- syn::BinOp::And(_val) => {
- formatter.write_str("And")?;
- Ok(())
- }
- syn::BinOp::Or(_val) => {
- formatter.write_str("Or")?;
- Ok(())
- }
- syn::BinOp::BitXor(_val) => {
- formatter.write_str("BitXor")?;
- Ok(())
- }
- syn::BinOp::BitAnd(_val) => {
- formatter.write_str("BitAnd")?;
- Ok(())
- }
- syn::BinOp::BitOr(_val) => {
- formatter.write_str("BitOr")?;
- Ok(())
- }
- syn::BinOp::Shl(_val) => {
- formatter.write_str("Shl")?;
- Ok(())
- }
- syn::BinOp::Shr(_val) => {
- formatter.write_str("Shr")?;
- Ok(())
- }
- syn::BinOp::Eq(_val) => {
- formatter.write_str("Eq")?;
- Ok(())
- }
- syn::BinOp::Lt(_val) => {
- formatter.write_str("Lt")?;
- Ok(())
- }
- syn::BinOp::Le(_val) => {
- formatter.write_str("Le")?;
- Ok(())
- }
- syn::BinOp::Ne(_val) => {
- formatter.write_str("Ne")?;
- Ok(())
- }
- syn::BinOp::Ge(_val) => {
- formatter.write_str("Ge")?;
- Ok(())
- }
- syn::BinOp::Gt(_val) => {
- formatter.write_str("Gt")?;
- Ok(())
- }
- syn::BinOp::AddEq(_val) => {
- formatter.write_str("AddEq")?;
- Ok(())
- }
- syn::BinOp::SubEq(_val) => {
- formatter.write_str("SubEq")?;
- Ok(())
- }
- syn::BinOp::MulEq(_val) => {
- formatter.write_str("MulEq")?;
- Ok(())
- }
- syn::BinOp::DivEq(_val) => {
- formatter.write_str("DivEq")?;
- Ok(())
- }
- syn::BinOp::RemEq(_val) => {
- formatter.write_str("RemEq")?;
- Ok(())
- }
- syn::BinOp::BitXorEq(_val) => {
- formatter.write_str("BitXorEq")?;
- Ok(())
- }
- syn::BinOp::BitAndEq(_val) => {
- formatter.write_str("BitAndEq")?;
- Ok(())
- }
- syn::BinOp::BitOrEq(_val) => {
- formatter.write_str("BitOrEq")?;
- Ok(())
- }
- syn::BinOp::ShlEq(_val) => {
- formatter.write_str("ShlEq")?;
- Ok(())
- }
- syn::BinOp::ShrEq(_val) => {
- formatter.write_str("ShrEq")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::Binding> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Binding");
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Block> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Block");
- if !_val.stmts.is_empty() {
- formatter.field("stmts", Lite(&_val.stmts));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::BoundLifetimes> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("BoundLifetimes");
- if !_val.lifetimes.is_empty() {
- formatter.field("lifetimes", Lite(&_val.lifetimes));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ConstParam> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ConstParam");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- if let Some(val) = &_val.eq_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Eq);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("eq_token", Print::ref_cast(val));
- }
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Expr);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Constraint> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Constraint");
- formatter.field("ident", Lite(&_val.ident));
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Data> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Data::Struct(_val) => {
- let mut formatter = formatter.debug_struct("Data::Struct");
- formatter.field("fields", Lite(&_val.fields));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Data::Enum(_val) => {
- let mut formatter = formatter.debug_struct("Data::Enum");
- if !_val.variants.is_empty() {
- formatter.field("variants", Lite(&_val.variants));
- }
- formatter.finish()
- }
- syn::Data::Union(_val) => {
- let mut formatter = formatter.debug_struct("Data::Union");
- formatter.field("fields", Lite(&_val.fields));
- formatter.finish()
- }
- }
- }
-}
-impl Debug for Lite<syn::DataEnum> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("DataEnum");
- if !_val.variants.is_empty() {
- formatter.field("variants", Lite(&_val.variants));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::DataStruct> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("DataStruct");
- formatter.field("fields", Lite(&_val.fields));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::DataUnion> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("DataUnion");
- formatter.field("fields", Lite(&_val.fields));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::DeriveInput> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("DeriveInput");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("data", Lite(&_val.data));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Expr> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Expr::Array(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Array");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
- syn::Expr::Assign(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Assign");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("left", Lite(&_val.left));
- formatter.field("right", Lite(&_val.right));
- formatter.finish()
- }
- syn::Expr::AssignOp(_val) => {
- let mut formatter = formatter.debug_struct("Expr::AssignOp");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("left", Lite(&_val.left));
- formatter.field("op", Lite(&_val.op));
- formatter.field("right", Lite(&_val.right));
- formatter.finish()
- }
- syn::Expr::Async(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Async");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.capture {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Move);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("capture", Print::ref_cast(val));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
- syn::Expr::Await(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Await");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("base", Lite(&_val.base));
- formatter.finish()
- }
- syn::Expr::Binary(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Binary");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("left", Lite(&_val.left));
- formatter.field("op", Lite(&_val.op));
- formatter.field("right", Lite(&_val.right));
- formatter.finish()
- }
- syn::Expr::Block(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Block");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
- syn::Expr::Box(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Box");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Expr::Break(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Break");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Lifetime);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- if let Some(val) = &_val.expr {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("expr", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Expr::Call(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Call");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("func", Lite(&_val.func));
- if !_val.args.is_empty() {
- formatter.field("args", Lite(&_val.args));
- }
- formatter.finish()
- }
- syn::Expr::Cast(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Cast");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
- syn::Expr::Closure(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Closure");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.asyncness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Async);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("asyncness", Print::ref_cast(val));
- }
- if let Some(val) = &_val.movability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Static);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("movability", Print::ref_cast(val));
- }
- if let Some(val) = &_val.capture {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Move);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("capture", Print::ref_cast(val));
- }
- if !_val.inputs.is_empty() {
- formatter.field("inputs", Lite(&_val.inputs));
- }
- formatter.field("output", Lite(&_val.output));
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
- syn::Expr::Continue(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Continue");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Lifetime);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Expr::Field(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Field");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("base", Lite(&_val.base));
- formatter.field("member", Lite(&_val.member));
- formatter.finish()
- }
- syn::Expr::ForLoop(_val) => {
- let mut formatter = formatter.debug_struct("Expr::ForLoop");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
- syn::Expr::Group(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Group");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Expr::If(_val) => {
- let mut formatter = formatter.debug_struct("Expr::If");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("cond", Lite(&_val.cond));
- formatter.field("then_branch", Lite(&_val.then_branch));
- if let Some(val) = &_val.else_branch {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Else, Box<syn::Expr>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("else_branch", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Expr::Index(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Index");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("index", Lite(&_val.index));
- formatter.finish()
- }
- syn::Expr::Let(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Let");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Expr::Lit(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Lit");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("lit", Lite(&_val.lit));
- formatter.finish()
- }
- syn::Expr::Loop(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Loop");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
- syn::Expr::Macro(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Macro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- formatter.finish()
- }
- syn::Expr::Match(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Match");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- if !_val.arms.is_empty() {
- formatter.field("arms", Lite(&_val.arms));
- }
- formatter.finish()
- }
- syn::Expr::MethodCall(_val) => {
- let mut formatter = formatter.debug_struct("Expr::MethodCall");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("receiver", Lite(&_val.receiver));
- formatter.field("method", Lite(&_val.method));
- if let Some(val) = &_val.turbofish {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::MethodTurbofish);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("turbofish", Print::ref_cast(val));
- }
- if !_val.args.is_empty() {
- formatter.field("args", Lite(&_val.args));
- }
- formatter.finish()
- }
- syn::Expr::Paren(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Paren");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Expr::Path(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Path");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.qself {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::QSelf);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("qself", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
- syn::Expr::Range(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Range");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.from {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("from", Print::ref_cast(val));
- }
- formatter.field("limits", Lite(&_val.limits));
- if let Some(val) = &_val.to {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("to", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Expr::Reference(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Reference");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Expr::Repeat(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Repeat");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("len", Lite(&_val.len));
- formatter.finish()
- }
- syn::Expr::Return(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Return");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.expr {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("expr", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Expr::Struct(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Struct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("path", Lite(&_val.path));
- if !_val.fields.is_empty() {
- formatter.field("fields", Lite(&_val.fields));
- }
- if let Some(val) = &_val.dot2_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Dot2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("dot2_token", Print::ref_cast(val));
- }
- if let Some(val) = &_val.rest {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("rest", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Expr::Try(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Try");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Expr::TryBlock(_val) => {
- let mut formatter = formatter.debug_struct("Expr::TryBlock");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
- syn::Expr::Tuple(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Tuple");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
- syn::Expr::Type(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Type");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
- syn::Expr::Unary(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Unary");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("op", Lite(&_val.op));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Expr::Unsafe(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Unsafe");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
- syn::Expr::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::Expr::While(_val) => {
- let mut formatter = formatter.debug_struct("Expr::While");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("cond", Lite(&_val.cond));
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
- syn::Expr::Yield(_val) => {
- let mut formatter = formatter.debug_struct("Expr::Yield");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.expr {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("expr", Print::ref_cast(val));
- }
- formatter.finish()
- }
- _ => unreachable!(),
- }
- }
-}
-impl Debug for Lite<syn::ExprArray> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprArray");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprAssign> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprAssign");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("left", Lite(&_val.left));
- formatter.field("right", Lite(&_val.right));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprAssignOp> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprAssignOp");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("left", Lite(&_val.left));
- formatter.field("op", Lite(&_val.op));
- formatter.field("right", Lite(&_val.right));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprAsync> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprAsync");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.capture {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Move);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("capture", Print::ref_cast(val));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprAwait> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprAwait");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("base", Lite(&_val.base));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprBinary> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprBinary");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("left", Lite(&_val.left));
- formatter.field("op", Lite(&_val.op));
- formatter.field("right", Lite(&_val.right));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprBlock> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprBlock");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprBox> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprBox");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprBreak> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprBreak");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Lifetime);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- if let Some(val) = &_val.expr {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("expr", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprCall> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprCall");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("func", Lite(&_val.func));
- if !_val.args.is_empty() {
- formatter.field("args", Lite(&_val.args));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprCast> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprCast");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprClosure> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprClosure");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.asyncness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Async);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("asyncness", Print::ref_cast(val));
- }
- if let Some(val) = &_val.movability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Static);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("movability", Print::ref_cast(val));
- }
- if let Some(val) = &_val.capture {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Move);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("capture", Print::ref_cast(val));
- }
- if !_val.inputs.is_empty() {
- formatter.field("inputs", Lite(&_val.inputs));
- }
- formatter.field("output", Lite(&_val.output));
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprContinue> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprContinue");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Lifetime);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprField> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprField");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("base", Lite(&_val.base));
- formatter.field("member", Lite(&_val.member));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprForLoop> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprForLoop");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprGroup> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprGroup");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprIf> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprIf");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("cond", Lite(&_val.cond));
- formatter.field("then_branch", Lite(&_val.then_branch));
- if let Some(val) = &_val.else_branch {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Else, Box<syn::Expr>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("else_branch", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprIndex> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprIndex");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("index", Lite(&_val.index));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprLet> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprLet");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprLit> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprLit");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("lit", Lite(&_val.lit));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprLoop> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprLoop");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprMacro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprMacro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprMatch> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprMatch");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- if !_val.arms.is_empty() {
- formatter.field("arms", Lite(&_val.arms));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprMethodCall> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprMethodCall");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("receiver", Lite(&_val.receiver));
- formatter.field("method", Lite(&_val.method));
- if let Some(val) = &_val.turbofish {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::MethodTurbofish);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("turbofish", Print::ref_cast(val));
- }
- if !_val.args.is_empty() {
- formatter.field("args", Lite(&_val.args));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprParen> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprParen");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprPath> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprPath");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.qself {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::QSelf);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("qself", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprRange> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprRange");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.from {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("from", Print::ref_cast(val));
- }
- formatter.field("limits", Lite(&_val.limits));
- if let Some(val) = &_val.to {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("to", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprReference> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprReference");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprRepeat> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprRepeat");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("len", Lite(&_val.len));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprReturn> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprReturn");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.expr {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("expr", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprStruct> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprStruct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("path", Lite(&_val.path));
- if !_val.fields.is_empty() {
- formatter.field("fields", Lite(&_val.fields));
- }
- if let Some(val) = &_val.dot2_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Dot2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("dot2_token", Print::ref_cast(val));
- }
- if let Some(val) = &_val.rest {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("rest", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprTry> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprTry");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprTryBlock> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprTryBlock");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprTuple> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprTuple");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprType");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprUnary> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprUnary");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("op", Lite(&_val.op));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprUnsafe> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprUnsafe");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprWhile> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprWhile");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.label {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Label);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("label", Print::ref_cast(val));
- }
- formatter.field("cond", Lite(&_val.cond));
- formatter.field("body", Lite(&_val.body));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ExprYield> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ExprYield");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.expr {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Box<syn::Expr>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("expr", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Field> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Field");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.ident {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(proc_macro2::Ident);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("ident", Print::ref_cast(val));
- }
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::FieldPat> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("FieldPat");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("member", Lite(&_val.member));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::FieldValue> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("FieldValue");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("member", Lite(&_val.member));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Fields> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Fields::Named(_val) => {
- let mut formatter = formatter.debug_struct("Fields::Named");
- if !_val.named.is_empty() {
- formatter.field("named", Lite(&_val.named));
- }
- formatter.finish()
- }
- syn::Fields::Unnamed(_val) => {
- let mut formatter = formatter.debug_struct("Fields::Unnamed");
- if !_val.unnamed.is_empty() {
- formatter.field("unnamed", Lite(&_val.unnamed));
- }
- formatter.finish()
- }
- syn::Fields::Unit => formatter.write_str("Unit"),
- }
- }
-}
-impl Debug for Lite<syn::FieldsNamed> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("FieldsNamed");
- if !_val.named.is_empty() {
- formatter.field("named", Lite(&_val.named));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::FieldsUnnamed> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("FieldsUnnamed");
- if !_val.unnamed.is_empty() {
- formatter.field("unnamed", Lite(&_val.unnamed));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::File> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("File");
- if let Some(val) = &_val.shebang {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(String);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("shebang", Print::ref_cast(val));
- }
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::FnArg> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::FnArg::Receiver(_val) => {
- formatter.write_str("Receiver")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::FnArg::Typed(_val) => {
- formatter.write_str("Typed")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::ForeignItem> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::ForeignItem::Fn(_val) => {
- let mut formatter = formatter.debug_struct("ForeignItem::Fn");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("sig", Lite(&_val.sig));
- formatter.finish()
- }
- syn::ForeignItem::Static(_val) => {
- let mut formatter = formatter.debug_struct("ForeignItem::Static");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
- syn::ForeignItem::Type(_val) => {
- let mut formatter = formatter.debug_struct("ForeignItem::Type");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.finish()
- }
- syn::ForeignItem::Macro(_val) => {
- let mut formatter = formatter.debug_struct("ForeignItem::Macro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::ForeignItem::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- _ => unreachable!(),
- }
- }
-}
-impl Debug for Lite<syn::ForeignItemFn> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ForeignItemFn");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("sig", Lite(&_val.sig));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ForeignItemMacro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ForeignItemMacro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ForeignItemStatic> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ForeignItemStatic");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ForeignItemType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ForeignItemType");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::GenericArgument> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::GenericArgument::Lifetime(_val) => {
- formatter.write_str("Lifetime")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::GenericArgument::Type(_val) => {
- formatter.write_str("Type")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::GenericArgument::Binding(_val) => {
- formatter.write_str("Binding")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::GenericArgument::Constraint(_val) => {
- formatter.write_str("Constraint")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::GenericArgument::Const(_val) => {
- formatter.write_str("Const")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::GenericMethodArgument> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::GenericMethodArgument::Type(_val) => {
- formatter.write_str("Type")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::GenericMethodArgument::Const(_val) => {
- formatter.write_str("Const")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::GenericParam> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::GenericParam::Type(_val) => {
- formatter.write_str("Type")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::GenericParam::Lifetime(_val) => {
- formatter.write_str("Lifetime")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::GenericParam::Const(_val) => {
- formatter.write_str("Const")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::Generics> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Generics");
- if let Some(val) = &_val.lt_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Lt);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("lt_token", Print::ref_cast(val));
- }
- if !_val.params.is_empty() {
- formatter.field("params", Lite(&_val.params));
- }
- if let Some(val) = &_val.gt_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Gt);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("gt_token", Print::ref_cast(val));
- }
- if let Some(val) = &_val.where_clause {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::WhereClause);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("where_clause", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ImplItem> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::ImplItem::Const(_val) => {
- let mut formatter = formatter.debug_struct("ImplItem::Const");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::ImplItem::Method(_val) => {
- let mut formatter = formatter.debug_struct("ImplItem::Method");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- formatter.field("sig", Lite(&_val.sig));
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
- syn::ImplItem::Type(_val) => {
- let mut formatter = formatter.debug_struct("ImplItem::Type");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
- syn::ImplItem::Macro(_val) => {
- let mut formatter = formatter.debug_struct("ImplItem::Macro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::ImplItem::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- _ => unreachable!(),
- }
- }
-}
-impl Debug for Lite<syn::ImplItemConst> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ImplItemConst");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ImplItemMacro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ImplItemMacro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ImplItemMethod> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ImplItemMethod");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- formatter.field("sig", Lite(&_val.sig));
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ImplItemType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ImplItemType");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Index> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Index");
- formatter.field("index", Lite(&_val.index));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Item> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Item::Const(_val) => {
- let mut formatter = formatter.debug_struct("Item::Const");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Item::Enum(_val) => {
- let mut formatter = formatter.debug_struct("Item::Enum");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if !_val.variants.is_empty() {
- formatter.field("variants", Lite(&_val.variants));
- }
- formatter.finish()
- }
- syn::Item::ExternCrate(_val) => {
- let mut formatter = formatter.debug_struct("Item::ExternCrate");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- if let Some(val) = &_val.rename {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::As, proc_macro2::Ident));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("rename", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Item::Fn(_val) => {
- let mut formatter = formatter.debug_struct("Item::Fn");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("sig", Lite(&_val.sig));
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
- syn::Item::ForeignMod(_val) => {
- let mut formatter = formatter.debug_struct("Item::ForeignMod");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("abi", Lite(&_val.abi));
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
- syn::Item::Impl(_val) => {
- let mut formatter = formatter.debug_struct("Item::Impl");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- if let Some(val) = &_val.unsafety {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Unsafe);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("unsafety", Print::ref_cast(val));
- }
- formatter.field("generics", Lite(&_val.generics));
- if let Some(val) = &_val.trait_ {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((Option<syn::token::Bang>, syn::Path, syn::token::For));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(
- &(
- {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Option<syn::token::Bang>);
- impl Debug for Print {
- fn fmt(
- &self,
- formatter: &mut fmt::Formatter,
- ) -> fmt::Result
- {
- match &self.0 {
- Some(_val) => {
- formatter.write_str("Some")?;
- Ok(())
- }
- None => formatter.write_str("None"),
- }
- }
- }
- Print::ref_cast(&_val.0)
- },
- Lite(&_val.1),
- ),
- formatter,
- )?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("trait_", Print::ref_cast(val));
- }
- formatter.field("self_ty", Lite(&_val.self_ty));
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
- syn::Item::Macro(_val) => {
- let mut formatter = formatter.debug_struct("Item::Macro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.ident {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(proc_macro2::Ident);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("ident", Print::ref_cast(val));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Item::Macro2(_val) => {
- let mut formatter = formatter.debug_struct("Item::Macro2");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("rules", Lite(&_val.rules));
- formatter.finish()
- }
- syn::Item::Mod(_val) => {
- let mut formatter = formatter.debug_struct("Item::Mod");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- if let Some(val) = &_val.content {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Brace, Vec<syn::Item>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("content", Print::ref_cast(val));
- }
- if let Some(val) = &_val.semi {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Item::Static(_val) => {
- let mut formatter = formatter.debug_struct("Item::Static");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Item::Struct(_val) => {
- let mut formatter = formatter.debug_struct("Item::Struct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("fields", Lite(&_val.fields));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Item::Trait(_val) => {
- let mut formatter = formatter.debug_struct("Item::Trait");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.unsafety {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Unsafe);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("unsafety", Print::ref_cast(val));
- }
- if let Some(val) = &_val.auto_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Auto);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("auto_token", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- if !_val.supertraits.is_empty() {
- formatter.field("supertraits", Lite(&_val.supertraits));
- }
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
- syn::Item::TraitAlias(_val) => {
- let mut formatter = formatter.debug_struct("Item::TraitAlias");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
- syn::Item::Type(_val) => {
- let mut formatter = formatter.debug_struct("Item::Type");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
- syn::Item::Union(_val) => {
- let mut formatter = formatter.debug_struct("Item::Union");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("fields", Lite(&_val.fields));
- formatter.finish()
- }
- syn::Item::Use(_val) => {
- let mut formatter = formatter.debug_struct("Item::Use");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.leading_colon {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("leading_colon", Print::ref_cast(val));
- }
- formatter.field("tree", Lite(&_val.tree));
- formatter.finish()
- }
- syn::Item::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- _ => unreachable!(),
- }
- }
-}
-impl Debug for Lite<syn::ItemConst> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemConst");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemEnum> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemEnum");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if !_val.variants.is_empty() {
- formatter.field("variants", Lite(&_val.variants));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemExternCrate> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemExternCrate");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- if let Some(val) = &_val.rename {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::As, proc_macro2::Ident));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("rename", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemFn> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemFn");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("sig", Lite(&_val.sig));
- formatter.field("block", Lite(&_val.block));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemForeignMod> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemForeignMod");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("abi", Lite(&_val.abi));
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemImpl> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemImpl");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.defaultness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Default);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("defaultness", Print::ref_cast(val));
- }
- if let Some(val) = &_val.unsafety {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Unsafe);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("unsafety", Print::ref_cast(val));
- }
- formatter.field("generics", Lite(&_val.generics));
- if let Some(val) = &_val.trait_ {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((Option<syn::token::Bang>, syn::Path, syn::token::For));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(
- &(
- {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Option<syn::token::Bang>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- match &self.0 {
- Some(_val) => {
- formatter.write_str("Some")?;
- Ok(())
- }
- None => formatter.write_str("None"),
- }
- }
- }
- Print::ref_cast(&_val.0)
- },
- Lite(&_val.1),
- ),
- formatter,
- )?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("trait_", Print::ref_cast(val));
- }
- formatter.field("self_ty", Lite(&_val.self_ty));
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemMacro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemMacro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.ident {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(proc_macro2::Ident);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("ident", Print::ref_cast(val));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemMacro2> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemMacro2");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("rules", Lite(&_val.rules));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemMod> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemMod");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- if let Some(val) = &_val.content {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Brace, Vec<syn::Item>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("content", Print::ref_cast(val));
- }
- if let Some(val) = &_val.semi {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemStatic> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemStatic");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemStruct> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemStruct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("fields", Lite(&_val.fields));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemTrait> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemTrait");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.unsafety {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Unsafe);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("unsafety", Print::ref_cast(val));
- }
- if let Some(val) = &_val.auto_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Auto);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("auto_token", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- if !_val.supertraits.is_empty() {
- formatter.field("supertraits", Lite(&_val.supertraits));
- }
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemTraitAlias> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemTraitAlias");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemType");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemUnion> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemUnion");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- formatter.field("fields", Lite(&_val.fields));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ItemUse> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ItemUse");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("vis", Lite(&_val.vis));
- if let Some(val) = &_val.leading_colon {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("leading_colon", Print::ref_cast(val));
- }
- formatter.field("tree", Lite(&_val.tree));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Label> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Label");
- formatter.field("name", Lite(&_val.name));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Lifetime> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Lifetime");
- formatter.field("ident", Lite(&_val.ident));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::LifetimeDef> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("LifetimeDef");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("lifetime", Lite(&_val.lifetime));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Lit> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Lit::Str(_val) => write!(formatter, "{:?}", _val.value()),
- syn::Lit::ByteStr(_val) => write!(formatter, "{:?}", _val.value()),
- syn::Lit::Byte(_val) => write!(formatter, "{:?}", _val.value()),
- syn::Lit::Char(_val) => write!(formatter, "{:?}", _val.value()),
- syn::Lit::Int(_val) => write!(formatter, "{}", _val),
- syn::Lit::Float(_val) => write!(formatter, "{}", _val),
- syn::Lit::Bool(_val) => {
- let mut formatter = formatter.debug_struct("Lit::Bool");
- formatter.field("value", Lite(&_val.value));
- formatter.finish()
- }
- syn::Lit::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::LitBool> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("LitBool");
- formatter.field("value", Lite(&_val.value));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::LitByte> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- write!(formatter, "{:?}", _val.value())
- }
-}
-impl Debug for Lite<syn::LitByteStr> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- write!(formatter, "{:?}", _val.value())
- }
-}
-impl Debug for Lite<syn::LitChar> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- write!(formatter, "{:?}", _val.value())
- }
-}
-impl Debug for Lite<syn::LitFloat> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- write!(formatter, "{}", _val)
- }
-}
-impl Debug for Lite<syn::LitInt> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- write!(formatter, "{}", _val)
- }
-}
-impl Debug for Lite<syn::LitStr> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- write!(formatter, "{:?}", _val.value())
- }
-}
-impl Debug for Lite<syn::Local> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Local");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- if let Some(val) = &_val.init {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Eq, Box<syn::Expr>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("init", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Macro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Macro");
- formatter.field("path", Lite(&_val.path));
- formatter.field("delimiter", Lite(&_val.delimiter));
- formatter.field("tokens", Lite(&_val.tokens));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::MacroDelimiter> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::MacroDelimiter::Paren(_val) => {
- formatter.write_str("Paren")?;
- Ok(())
- }
- syn::MacroDelimiter::Brace(_val) => {
- formatter.write_str("Brace")?;
- Ok(())
- }
- syn::MacroDelimiter::Bracket(_val) => {
- formatter.write_str("Bracket")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::Member> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Member::Named(_val) => {
- formatter.write_str("Named")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::Member::Unnamed(_val) => {
- formatter.write_str("Unnamed")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::Meta> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Meta::Path(_val) => {
- formatter.write_str("Path")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::Meta::List(_val) => {
- let mut formatter = formatter.debug_struct("Meta::List");
- formatter.field("path", Lite(&_val.path));
- if !_val.nested.is_empty() {
- formatter.field("nested", Lite(&_val.nested));
- }
- formatter.finish()
- }
- syn::Meta::NameValue(_val) => {
- let mut formatter = formatter.debug_struct("Meta::NameValue");
- formatter.field("path", Lite(&_val.path));
- formatter.field("lit", Lite(&_val.lit));
- formatter.finish()
- }
- }
- }
-}
-impl Debug for Lite<syn::MetaList> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("MetaList");
- formatter.field("path", Lite(&_val.path));
- if !_val.nested.is_empty() {
- formatter.field("nested", Lite(&_val.nested));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::MetaNameValue> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("MetaNameValue");
- formatter.field("path", Lite(&_val.path));
- formatter.field("lit", Lite(&_val.lit));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::MethodTurbofish> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("MethodTurbofish");
- if !_val.args.is_empty() {
- formatter.field("args", Lite(&_val.args));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::NestedMeta> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::NestedMeta::Meta(_val) => {
- formatter.write_str("Meta")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::NestedMeta::Lit(_val) => {
- formatter.write_str("Lit")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::ParenthesizedGenericArguments> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("ParenthesizedGenericArguments");
- if !_val.inputs.is_empty() {
- formatter.field("inputs", Lite(&_val.inputs));
- }
- formatter.field("output", Lite(&_val.output));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Pat> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Pat::Box(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Box");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.finish()
- }
- syn::Pat::Ident(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Ident");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.by_ref {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Ref);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("by_ref", Print::ref_cast(val));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- if let Some(val) = &_val.subpat {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::At, Box<syn::Pat>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("subpat", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Pat::Lit(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Lit");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
- syn::Pat::Macro(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Macro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- formatter.finish()
- }
- syn::Pat::Or(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Or");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.leading_vert {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Or);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("leading_vert", Print::ref_cast(val));
- }
- if !_val.cases.is_empty() {
- formatter.field("cases", Lite(&_val.cases));
- }
- formatter.finish()
- }
- syn::Pat::Path(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Path");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.qself {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::QSelf);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("qself", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
- syn::Pat::Range(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Range");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("lo", Lite(&_val.lo));
- formatter.field("limits", Lite(&_val.limits));
- formatter.field("hi", Lite(&_val.hi));
- formatter.finish()
- }
- syn::Pat::Reference(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Reference");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.finish()
- }
- syn::Pat::Rest(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Rest");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.finish()
- }
- syn::Pat::Slice(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Slice");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
- syn::Pat::Struct(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Struct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("path", Lite(&_val.path));
- if !_val.fields.is_empty() {
- formatter.field("fields", Lite(&_val.fields));
- }
- if let Some(val) = &_val.dot2_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Dot2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("dot2_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::Pat::Tuple(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Tuple");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
- syn::Pat::TupleStruct(_val) => {
- let mut formatter = formatter.debug_struct("Pat::TupleStruct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.field("pat", Lite(&_val.pat));
- formatter.finish()
- }
- syn::Pat::Type(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Type");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
- syn::Pat::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::Pat::Wild(_val) => {
- let mut formatter = formatter.debug_struct("Pat::Wild");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.finish()
- }
- _ => unreachable!(),
- }
- }
-}
-impl Debug for Lite<syn::PatBox> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatBox");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatIdent> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatIdent");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.by_ref {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Ref);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("by_ref", Print::ref_cast(val));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- if let Some(val) = &_val.subpat {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::At, Box<syn::Pat>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("subpat", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatLit> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatLit");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("expr", Lite(&_val.expr));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatMacro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatMacro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatOr> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatOr");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.leading_vert {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Or);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("leading_vert", Print::ref_cast(val));
- }
- if !_val.cases.is_empty() {
- formatter.field("cases", Lite(&_val.cases));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatPath> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatPath");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.qself {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::QSelf);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("qself", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatRange> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatRange");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("lo", Lite(&_val.lo));
- formatter.field("limits", Lite(&_val.limits));
- formatter.field("hi", Lite(&_val.hi));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatReference> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatReference");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatRest> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatRest");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatSlice> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatSlice");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatStruct> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatStruct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("path", Lite(&_val.path));
- if !_val.fields.is_empty() {
- formatter.field("fields", Lite(&_val.fields));
- }
- if let Some(val) = &_val.dot2_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Dot2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("dot2_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatTuple> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatTuple");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatTupleStruct> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatTupleStruct");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.field("pat", Lite(&_val.pat));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatType");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("pat", Lite(&_val.pat));
- formatter.field("ty", Lite(&_val.ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PatWild> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PatWild");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Path> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Path");
- if let Some(val) = &_val.leading_colon {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("leading_colon", Print::ref_cast(val));
- }
- if !_val.segments.is_empty() {
- formatter.field("segments", Lite(&_val.segments));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PathArguments> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::PathArguments::None => formatter.write_str("None"),
- syn::PathArguments::AngleBracketed(_val) => {
- let mut formatter = formatter.debug_struct("PathArguments::AngleBracketed");
- if let Some(val) = &_val.colon2_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon2);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon2_token", Print::ref_cast(val));
- }
- if !_val.args.is_empty() {
- formatter.field("args", Lite(&_val.args));
- }
- formatter.finish()
- }
- syn::PathArguments::Parenthesized(_val) => {
- let mut formatter = formatter.debug_struct("PathArguments::Parenthesized");
- if !_val.inputs.is_empty() {
- formatter.field("inputs", Lite(&_val.inputs));
- }
- formatter.field("output", Lite(&_val.output));
- formatter.finish()
- }
- }
- }
-}
-impl Debug for Lite<syn::PathSegment> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PathSegment");
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("arguments", Lite(&_val.arguments));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PredicateEq> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PredicateEq");
- formatter.field("lhs_ty", Lite(&_val.lhs_ty));
- formatter.field("rhs_ty", Lite(&_val.rhs_ty));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PredicateLifetime> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PredicateLifetime");
- formatter.field("lifetime", Lite(&_val.lifetime));
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::PredicateType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("PredicateType");
- if let Some(val) = &_val.lifetimes {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::BoundLifetimes);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("lifetimes", Print::ref_cast(val));
- }
- formatter.field("bounded_ty", Lite(&_val.bounded_ty));
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::QSelf> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("QSelf");
- formatter.field("ty", Lite(&_val.ty));
- formatter.field("position", Lite(&_val.position));
- if let Some(val) = &_val.as_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::As);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("as_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::RangeLimits> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::RangeLimits::HalfOpen(_val) => {
- formatter.write_str("HalfOpen")?;
- Ok(())
- }
- syn::RangeLimits::Closed(_val) => {
- formatter.write_str("Closed")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::Receiver> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Receiver");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- if let Some(val) = &_val.reference {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::And, Option<syn::Lifetime>));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(
- {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(Option<syn::Lifetime>);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- match &self.0 {
- Some(_val) => {
- formatter.write_str("Some")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- None => formatter.write_str("None"),
- }
- }
- }
- Print::ref_cast(&_val.1)
- },
- formatter,
- )?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("reference", Print::ref_cast(val));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::ReturnType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::ReturnType::Default => formatter.write_str("Default"),
- syn::ReturnType::Type(_v0, _v1) => {
- let mut formatter = formatter.debug_tuple("Type");
- formatter.field(Lite(_v1));
- formatter.finish()
- }
- }
- }
-}
-impl Debug for Lite<syn::Signature> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Signature");
- if let Some(val) = &_val.constness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Const);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("constness", Print::ref_cast(val));
- }
- if let Some(val) = &_val.asyncness {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Async);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("asyncness", Print::ref_cast(val));
- }
- if let Some(val) = &_val.unsafety {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Unsafe);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("unsafety", Print::ref_cast(val));
- }
- if let Some(val) = &_val.abi {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Abi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("abi", Print::ref_cast(val));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if !_val.inputs.is_empty() {
- formatter.field("inputs", Lite(&_val.inputs));
- }
- if let Some(val) = &_val.variadic {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Variadic);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("variadic", Print::ref_cast(val));
- }
- formatter.field("output", Lite(&_val.output));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Stmt> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Stmt::Local(_val) => {
- formatter.write_str("Local")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::Stmt::Item(_val) => {
- formatter.write_str("Item")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::Stmt::Expr(_val) => {
- formatter.write_str("Expr")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::Stmt::Semi(_v0, _v1) => {
- let mut formatter = formatter.debug_tuple("Semi");
- formatter.field(Lite(_v0));
- formatter.finish()
- }
- }
- }
-}
-impl Debug for Lite<syn::TraitBound> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TraitBound");
- if let Some(val) = &_val.paren_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Paren);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("paren_token", Print::ref_cast(val));
- }
- formatter.field("modifier", Lite(&_val.modifier));
- if let Some(val) = &_val.lifetimes {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::BoundLifetimes);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("lifetimes", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TraitBoundModifier> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::TraitBoundModifier::None => formatter.write_str("None"),
- syn::TraitBoundModifier::Maybe(_val) => {
- formatter.write_str("Maybe")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::TraitItem> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::TraitItem::Const(_val) => {
- let mut formatter = formatter.debug_struct("TraitItem::Const");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Eq, syn::Expr));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::TraitItem::Method(_val) => {
- let mut formatter = formatter.debug_struct("TraitItem::Method");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("sig", Lite(&_val.sig));
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Block);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::TraitItem::Type(_val) => {
- let mut formatter = formatter.debug_struct("TraitItem::Type");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Eq, syn::Type));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::TraitItem::Macro(_val) => {
- let mut formatter = formatter.debug_struct("TraitItem::Macro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
- syn::TraitItem::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- _ => unreachable!(),
- }
- }
-}
-impl Debug for Lite<syn::TraitItemConst> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TraitItemConst");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("ty", Lite(&_val.ty));
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Eq, syn::Expr));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TraitItemMacro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TraitItemMacro");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("mac", Lite(&_val.mac));
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TraitItemMethod> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TraitItemMethod");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("sig", Lite(&_val.sig));
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Block);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- if let Some(val) = &_val.semi_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Semi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("semi_token", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TraitItemType> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TraitItemType");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("generics", Lite(&_val.generics));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Eq, syn::Type));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Type> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Type::Array(_val) => {
- let mut formatter = formatter.debug_struct("Type::Array");
- formatter.field("elem", Lite(&_val.elem));
- formatter.field("len", Lite(&_val.len));
- formatter.finish()
- }
- syn::Type::BareFn(_val) => {
- let mut formatter = formatter.debug_struct("Type::BareFn");
- if let Some(val) = &_val.lifetimes {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::BoundLifetimes);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("lifetimes", Print::ref_cast(val));
- }
- if let Some(val) = &_val.unsafety {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Unsafe);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("unsafety", Print::ref_cast(val));
- }
- if let Some(val) = &_val.abi {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Abi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("abi", Print::ref_cast(val));
- }
- if !_val.inputs.is_empty() {
- formatter.field("inputs", Lite(&_val.inputs));
- }
- if let Some(val) = &_val.variadic {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Variadic);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("variadic", Print::ref_cast(val));
- }
- formatter.field("output", Lite(&_val.output));
- formatter.finish()
- }
- syn::Type::Group(_val) => {
- let mut formatter = formatter.debug_struct("Type::Group");
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
- syn::Type::ImplTrait(_val) => {
- let mut formatter = formatter.debug_struct("Type::ImplTrait");
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
- syn::Type::Infer(_val) => {
- let mut formatter = formatter.debug_struct("Type::Infer");
- formatter.finish()
- }
- syn::Type::Macro(_val) => {
- let mut formatter = formatter.debug_struct("Type::Macro");
- formatter.field("mac", Lite(&_val.mac));
- formatter.finish()
- }
- syn::Type::Never(_val) => {
- let mut formatter = formatter.debug_struct("Type::Never");
- formatter.finish()
- }
- syn::Type::Paren(_val) => {
- let mut formatter = formatter.debug_struct("Type::Paren");
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
- syn::Type::Path(_val) => {
- let mut formatter = formatter.debug_struct("Type::Path");
- if let Some(val) = &_val.qself {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::QSelf);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("qself", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
- syn::Type::Ptr(_val) => {
- let mut formatter = formatter.debug_struct("Type::Ptr");
- if let Some(val) = &_val.const_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Const);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("const_token", Print::ref_cast(val));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
- syn::Type::Reference(_val) => {
- let mut formatter = formatter.debug_struct("Type::Reference");
- if let Some(val) = &_val.lifetime {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Lifetime);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("lifetime", Print::ref_cast(val));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
- syn::Type::Slice(_val) => {
- let mut formatter = formatter.debug_struct("Type::Slice");
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
- syn::Type::TraitObject(_val) => {
- let mut formatter = formatter.debug_struct("Type::TraitObject");
- if let Some(val) = &_val.dyn_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Dyn);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("dyn_token", Print::ref_cast(val));
- }
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
- syn::Type::Tuple(_val) => {
- let mut formatter = formatter.debug_struct("Type::Tuple");
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
- syn::Type::Verbatim(_val) => {
- formatter.write_str("Verbatim")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- _ => unreachable!(),
- }
- }
-}
-impl Debug for Lite<syn::TypeArray> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeArray");
- formatter.field("elem", Lite(&_val.elem));
- formatter.field("len", Lite(&_val.len));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeBareFn> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeBareFn");
- if let Some(val) = &_val.lifetimes {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::BoundLifetimes);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("lifetimes", Print::ref_cast(val));
- }
- if let Some(val) = &_val.unsafety {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Unsafe);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("unsafety", Print::ref_cast(val));
- }
- if let Some(val) = &_val.abi {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Abi);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("abi", Print::ref_cast(val));
- }
- if !_val.inputs.is_empty() {
- formatter.field("inputs", Lite(&_val.inputs));
- }
- if let Some(val) = &_val.variadic {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Variadic);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("variadic", Print::ref_cast(val));
- }
- formatter.field("output", Lite(&_val.output));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeGroup> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeGroup");
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeImplTrait> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeImplTrait");
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeInfer> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeInfer");
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeMacro> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeMacro");
- formatter.field("mac", Lite(&_val.mac));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeNever> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeNever");
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeParam> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeParam");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("ident", Lite(&_val.ident));
- if let Some(val) = &_val.colon_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Colon);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("colon_token", Print::ref_cast(val));
- }
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- if let Some(val) = &_val.eq_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Eq);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("eq_token", Print::ref_cast(val));
- }
- if let Some(val) = &_val.default {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Type);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("default", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeParamBound> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::TypeParamBound::Trait(_val) => {
- formatter.write_str("Trait")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::TypeParamBound::Lifetime(_val) => {
- formatter.write_str("Lifetime")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::TypeParen> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeParen");
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypePath> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypePath");
- if let Some(val) = &_val.qself {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::QSelf);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("qself", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypePtr> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypePtr");
- if let Some(val) = &_val.const_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Const);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("const_token", Print::ref_cast(val));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeReference> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeReference");
- if let Some(val) = &_val.lifetime {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::Lifetime);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("lifetime", Print::ref_cast(val));
- }
- if let Some(val) = &_val.mutability {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Mut);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("mutability", Print::ref_cast(val));
- }
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeSlice> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeSlice");
- formatter.field("elem", Lite(&_val.elem));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeTraitObject> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeTraitObject");
- if let Some(val) = &_val.dyn_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::Dyn);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("dyn_token", Print::ref_cast(val));
- }
- if !_val.bounds.is_empty() {
- formatter.field("bounds", Lite(&_val.bounds));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::TypeTuple> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("TypeTuple");
- if !_val.elems.is_empty() {
- formatter.field("elems", Lite(&_val.elems));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::UnOp> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::UnOp::Deref(_val) => {
- formatter.write_str("Deref")?;
- Ok(())
- }
- syn::UnOp::Not(_val) => {
- formatter.write_str("Not")?;
- Ok(())
- }
- syn::UnOp::Neg(_val) => {
- formatter.write_str("Neg")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::UseGlob> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("UseGlob");
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::UseGroup> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("UseGroup");
- if !_val.items.is_empty() {
- formatter.field("items", Lite(&_val.items));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::UseName> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("UseName");
- formatter.field("ident", Lite(&_val.ident));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::UsePath> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("UsePath");
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("tree", Lite(&_val.tree));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::UseRename> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("UseRename");
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("rename", Lite(&_val.rename));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::UseTree> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::UseTree::Path(_val) => {
- formatter.write_str("Path")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::UseTree::Name(_val) => {
- formatter.write_str("Name")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::UseTree::Rename(_val) => {
- formatter.write_str("Rename")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::UseTree::Glob(_val) => {
- formatter.write_str("Glob")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::UseTree::Group(_val) => {
- formatter.write_str("Group")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
-impl Debug for Lite<syn::Variadic> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Variadic");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Variant> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("Variant");
- if !_val.attrs.is_empty() {
- formatter.field("attrs", Lite(&_val.attrs));
- }
- formatter.field("ident", Lite(&_val.ident));
- formatter.field("fields", Lite(&_val.fields));
- if let Some(val) = &_val.discriminant {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print((syn::token::Eq, syn::Expr));
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- let _val = &self.0;
- formatter.write_str("(")?;
- Debug::fmt(Lite(&_val.1), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- formatter.field("discriminant", Print::ref_cast(val));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::VisCrate> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("VisCrate");
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::VisPublic> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("VisPublic");
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::VisRestricted> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("VisRestricted");
- if let Some(val) = &_val.in_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::In);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("in_token", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::Visibility> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::Visibility::Public(_val) => {
- let mut formatter = formatter.debug_struct("Visibility::Public");
- formatter.finish()
- }
- syn::Visibility::Crate(_val) => {
- let mut formatter = formatter.debug_struct("Visibility::Crate");
- formatter.finish()
- }
- syn::Visibility::Restricted(_val) => {
- let mut formatter = formatter.debug_struct("Visibility::Restricted");
- if let Some(val) = &_val.in_token {
- #[derive(RefCast)]
- #[repr(transparent)]
- struct Print(syn::token::In);
- impl Debug for Print {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter.write_str("Some")?;
- Ok(())
- }
- }
- formatter.field("in_token", Print::ref_cast(val));
- }
- formatter.field("path", Lite(&_val.path));
- formatter.finish()
- }
- syn::Visibility::Inherited => formatter.write_str("Inherited"),
- }
- }
-}
-impl Debug for Lite<syn::WhereClause> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- let mut formatter = formatter.debug_struct("WhereClause");
- if !_val.predicates.is_empty() {
- formatter.field("predicates", Lite(&_val.predicates));
- }
- formatter.finish()
- }
-}
-impl Debug for Lite<syn::WherePredicate> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- let _val = &self.value;
- match _val {
- syn::WherePredicate::Type(_val) => {
- formatter.write_str("Type")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::WherePredicate::Lifetime(_val) => {
- formatter.write_str("Lifetime")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- syn::WherePredicate::Eq(_val) => {
- formatter.write_str("Eq")?;
- formatter.write_str("(")?;
- Debug::fmt(Lite(_val), formatter)?;
- formatter.write_str(")")?;
- Ok(())
- }
- }
- }
-}
diff --git a/syn/tests/debug/mod.rs b/syn/tests/debug/mod.rs
deleted file mode 100644
index 9c80e2c..0000000
--- a/syn/tests/debug/mod.rs
+++ /dev/null
@@ -1,110 +0,0 @@
-mod gen;
-
-use proc_macro2::{Ident, Literal, TokenStream};
-use ref_cast::RefCast;
-use std::fmt::{self, Debug};
-use std::ops::Deref;
-use syn::punctuated::Punctuated;
-
-#[derive(RefCast)]
-#[repr(transparent)]
-pub struct Lite<T: ?Sized> {
- value: T,
-}
-
-#[allow(non_snake_case)]
-pub fn Lite<T: ?Sized>(value: &T) -> &Lite<T> {
- Lite::ref_cast(value)
-}
-
-impl<T: ?Sized> Deref for Lite<T> {
- type Target = T;
-
- fn deref(&self) -> &Self::Target {
- &self.value
- }
-}
-
-impl Debug for Lite<bool> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- write!(formatter, "{}", self.value)
- }
-}
-
-impl Debug for Lite<u32> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- write!(formatter, "{}", self.value)
- }
-}
-
-impl Debug for Lite<usize> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- write!(formatter, "{}", self.value)
- }
-}
-
-impl Debug for Lite<String> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- write!(formatter, "{:?}", self.value)
- }
-}
-
-impl Debug for Lite<Ident> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- write!(formatter, "{:?}", self.value.to_string())
- }
-}
-
-impl Debug for Lite<Literal> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- write!(formatter, "{}", self.value)
- }
-}
-
-impl Debug for Lite<TokenStream> {
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- write!(formatter, "`{}`", self.value)
- }
-}
-
-impl<'a, T> Debug for Lite<&'a T>
-where
- Lite<T>: Debug,
-{
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- Debug::fmt(Lite(&*self.value), formatter)
- }
-}
-
-impl<T> Debug for Lite<Box<T>>
-where
- Lite<T>: Debug,
-{
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- Debug::fmt(Lite(&*self.value), formatter)
- }
-}
-
-impl<T> Debug for Lite<Vec<T>>
-where
- Lite<T>: Debug,
-{
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter
- .debug_list()
- .entries(self.value.iter().map(Lite))
- .finish()
- }
-}
-
-impl<T, P> Debug for Lite<Punctuated<T, P>>
-where
- Lite<T>: Debug,
-{
- fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
- formatter
- .debug_list()
- .entries(self.value.iter().map(Lite))
- .finish()
- }
-}
diff --git a/syn/tests/features/error.rs b/syn/tests/features/error.rs
deleted file mode 100644
index 10ac889..0000000
--- a/syn/tests/features/error.rs
+++ /dev/null
@@ -1 +0,0 @@
-"Hello! You want: cargo test --release --all-features"
diff --git a/syn/tests/features/mod.rs b/syn/tests/features/mod.rs
deleted file mode 100644
index 83fbe13..0000000
--- a/syn/tests/features/mod.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-#[allow(unused_macros)]
-macro_rules! hide_from_rustfmt {
- ($mod:item) => {
- $mod
- };
-}
-
-#[cfg(not(all(
- feature = "derive",
- feature = "full",
- feature = "parsing",
- feature = "printing",
- feature = "visit",
- feature = "visit-mut",
- feature = "fold",
- feature = "clone-impls",
- feature = "extra-traits",
- feature = "proc-macro",
-)))]
-hide_from_rustfmt! {
- mod error;
-}
diff --git a/syn/tests/macros/mod.rs b/syn/tests/macros/mod.rs
deleted file mode 100644
index 3994615..0000000
--- a/syn/tests/macros/mod.rs
+++ /dev/null
@@ -1,76 +0,0 @@
-#[path = "../debug/mod.rs"]
-pub mod debug;
-
-use syn;
-use syn::parse::{Parse, Result};
-
-#[macro_export]
-macro_rules! errorf {
- ($($tt:tt)*) => {{
- use ::std::io::Write;
- let stderr = ::std::io::stderr();
- write!(stderr.lock(), $($tt)*).unwrap();
- }};
-}
-
-#[macro_export]
-macro_rules! punctuated {
- ($($e:expr,)+) => {{
- let mut seq = ::syn::punctuated::Punctuated::new();
- $(
- seq.push($e);
- )+
- seq
- }};
-
- ($($e:expr),+) => {
- punctuated!($($e,)+)
- };
-}
-
-#[macro_export]
-macro_rules! snapshot {
- ($($args:tt)*) => {
- snapshot_impl!(() $($args)*)
- };
-}
-
-#[macro_export]
-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);
- 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);
- insta::assert_debug_snapshot!(debug, @$snapshot);
- syntax_tree
- }};
- (($($expr:tt)*) , @$snapshot:literal) => {{
- let syntax_tree = $($expr)*;
- let debug = crate::macros::debug::Lite(&syntax_tree);
- insta::assert_debug_snapshot!(debug, @$snapshot);
- syntax_tree
- }};
- (($($expr:tt)*) $next:tt $($rest:tt)*) => {
- snapshot_impl!(($($expr)* $next) $($rest)*)
- };
-}
-
-pub trait Tokens {
- fn parse<T: Parse>(self) -> Result<T>;
-}
-
-impl<'a> Tokens for &'a str {
- fn parse<T: Parse>(self) -> Result<T> {
- syn::parse_str(self)
- }
-}
-
-impl Tokens for proc_macro2::TokenStream {
- fn parse<T: Parse>(self) -> Result<T> {
- syn::parse2(self)
- }
-}
diff --git a/syn/tests/repo/mod.rs b/syn/tests/repo/mod.rs
deleted file mode 100644
index 681615c..0000000
--- a/syn/tests/repo/mod.rs
+++ /dev/null
@@ -1,109 +0,0 @@
-mod progress;
-
-use self::progress::Progress;
-use crate::common;
-use anyhow::Result;
-use flate2::read::GzDecoder;
-use std::fs;
-use std::path::Path;
-use tar::Archive;
-use walkdir::DirEntry;
-
-const REVISION: &str = "7979016aff545f7b41cc517031026020b340989d";
-
-pub fn base_dir_filter(entry: &DirEntry) -> bool {
- let path = entry.path();
- if path.is_dir() {
- return true; // otherwise walkdir does not visit the files
- }
- if path.extension().map(|e| e != "rs").unwrap_or(true) {
- return false;
- }
- let path_string = path.to_string_lossy();
- let path_string = if cfg!(windows) {
- path_string.replace('\\', "/").into()
- } else {
- path_string
- };
- // TODO assert that parsing fails on the parse-fail cases
- if path_string.starts_with("tests/rust/src/test/parse-fail")
- || path_string.starts_with("tests/rust/src/test/compile-fail")
- || path_string.starts_with("tests/rust/src/test/rustfix")
- {
- return false;
- }
-
- if path_string.starts_with("tests/rust/src/test/ui") {
- let stderr_path = path.with_extension("stderr");
- if stderr_path.exists() {
- // Expected to fail in some way
- return false;
- }
- }
-
- match path_string.as_ref() {
- // Deprecated placement syntax
- "tests/rust/src/test/ui/obsolete-in-place/bad.rs" |
- // Deprecated anonymous parameter syntax in traits
- "tests/rust/src/test/ui/error-codes/e0119/auxiliary/issue-23563-a.rs" |
- "tests/rust/src/test/ui/issues/issue-13105.rs" |
- "tests/rust/src/test/ui/issues/issue-13775.rs" |
- "tests/rust/src/test/ui/issues/issue-34074.rs" |
- // Deprecated await macro syntax
- "tests/rust/src/test/ui/async-await/await-macro.rs" |
- // 2015-style dyn that libsyntax rejects
- "tests/rust/src/test/ui/dyn-keyword/dyn-2015-no-warnings-without-lints.rs" |
- // not actually test cases
- "tests/rust/src/test/ui/include-single-expr-helper.rs" |
- "tests/rust/src/test/ui/include-single-expr-helper-1.rs" |
- "tests/rust/src/test/ui/issues/auxiliary/issue-21146-inc.rs" |
- "tests/rust/src/test/ui/macros/auxiliary/macro-comma-support.rs" |
- "tests/rust/src/test/ui/macros/auxiliary/macro-include-items-expr.rs" => false,
- _ => true,
- }
-}
-
-pub fn clone_rust() {
- let needs_clone = match fs::read_to_string("tests/rust/COMMIT") {
- Err(_) => true,
- Ok(contents) => contents.trim() != REVISION,
- };
- if needs_clone {
- download_and_unpack().unwrap();
- }
-}
-
-fn download_and_unpack() -> Result<()> {
- let url = format!(
- "https://github.com/rust-lang/rust/archive/{}.tar.gz",
- REVISION
- );
- let response = reqwest::blocking::get(&url)?.error_for_status()?;
- let progress = Progress::new(response);
- let decoder = GzDecoder::new(progress);
- let mut archive = Archive::new(decoder);
- let prefix = format!("rust-{}", REVISION);
-
- let tests_rust = Path::new("tests/rust");
- if tests_rust.exists() {
- fs::remove_dir_all(tests_rust)?;
- }
-
- for entry in archive.entries()? {
- let mut entry = entry?;
- let path = entry.path()?;
- if path == Path::new("pax_global_header") {
- continue;
- }
- let relative = path.strip_prefix(&prefix)?;
- let out = tests_rust.join(relative);
- entry.unpack(&out)?;
- if common::travis_ci() {
- // Something about this makes the travis build not deadlock...
- errorf!(".");
- }
- }
-
- fs::write("tests/rust/COMMIT", REVISION)?;
- Ok(())
-}
diff --git a/syn/tests/repo/progress.rs b/syn/tests/repo/progress.rs
deleted file mode 100644
index 28c8a44..0000000
--- a/syn/tests/repo/progress.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-use std::io::{Read, Result};
-use std::time::{Duration, Instant};
-
-pub struct Progress<R> {
- bytes: usize,
- tick: Instant,
- stream: R,
-}
-
-impl<R> Progress<R> {
- pub fn new(stream: R) -> Self {
- Progress {
- bytes: 0,
- tick: Instant::now() + Duration::from_millis(2000),
- stream,
- }
- }
-}
-
-impl<R: Read> Read for Progress<R> {
- fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
- let num = self.stream.read(buf)?;
- self.bytes += num;
- let now = Instant::now();
- if now > self.tick {
- self.tick = now + Duration::from_millis(500);
- errorf!("downloading... {} bytes\n", self.bytes);
- }
- Ok(num)
- }
-}
-
-impl<R> Drop for Progress<R> {
- fn drop(&mut self) {
- errorf!("done ({} bytes)\n", self.bytes);
- }
-}
diff --git a/syn/tests/test_asyncness.rs b/syn/tests/test_asyncness.rs
deleted file mode 100644
index e09e816..0000000
--- a/syn/tests/test_asyncness.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-mod features;
-
-#[macro_use]
-mod macros;
-
-use syn::{Expr, Item};
-
-#[test]
-fn test_async_fn() {
- let input = "async fn process() {}";
-
- snapshot!(input as Item, @r###"
- Item::Fn {
- vis: Inherited,
- sig: Signature {
- asyncness: Some,
- ident: "process",
- generics: Generics,
- output: Default,
- },
- block: Block,
- }
- "###);
-}
-
-#[test]
-fn test_async_closure() {
- let input = "async || {}";
-
- snapshot!(input as Expr, @r###"
- Expr::Closure {
- asyncness: Some,
- output: Default,
- body: Expr::Block {
- block: Block,
- },
- }
- "###);
-}
diff --git a/syn/tests/test_attribute.rs b/syn/tests/test_attribute.rs
deleted file mode 100644
index d77c0c0..0000000
--- a/syn/tests/test_attribute.rs
+++ /dev/null
@@ -1,296 +0,0 @@
-mod features;
-
-#[macro_use]
-mod macros;
-
-use syn::parse::Parser;
-use syn::{Attribute, Meta};
-
-#[test]
-fn test_meta_item_word() {
- let meta = test("#[foo]");
-
- snapshot!(meta, @r###"
- Path(Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- })
- "###);
-}
-
-#[test]
-fn test_meta_item_name_value() {
- let meta = test("#[foo = 5]");
-
- snapshot!(meta, @r###"
- Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }
- "###);
-}
-
-#[test]
-fn test_meta_item_bool_value() {
- let meta = test("#[foo = true]");
-
- snapshot!(meta, @r###"
- Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- lit: Lit::Bool {
- value: true,
- },
- }
- "###);
-
- let meta = test("#[foo = false]");
-
- snapshot!(meta, @r###"
- Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- lit: Lit::Bool {
- value: false,
- },
- }
- "###);
-}
-
-#[test]
-fn test_meta_item_list_lit() {
- let meta = test("#[foo(5)]");
-
- snapshot!(meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Lit(5),
- ],
- }
- "###);
-}
-
-#[test]
-fn test_meta_item_list_word() {
- let meta = test("#[foo(bar)]");
-
- snapshot!(meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "bar",
- arguments: None,
- },
- ],
- })),
- ],
- }
- "###);
-}
-
-#[test]
-fn test_meta_item_list_name_value() {
- let meta = test("#[foo(bar = 5)]");
-
- snapshot!(meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "bar",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }),
- ],
- }
- "###);
-}
-
-#[test]
-fn test_meta_item_list_bool_value() {
- let meta = test("#[foo(bar = true)]");
-
- snapshot!(meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "bar",
- arguments: None,
- },
- ],
- },
- lit: Lit::Bool {
- value: true,
- },
- }),
- ],
- }
- "###);
-}
-
-#[test]
-fn test_meta_item_multiple() {
- let meta = test("#[foo(word, name = 5, list(name2 = 6), word2)]");
-
- snapshot!(meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "word",
- arguments: None,
- },
- ],
- })),
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "name",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }),
- Meta(Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "list",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "name2",
- arguments: None,
- },
- ],
- },
- lit: 6,
- }),
- ],
- }),
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "word2",
- arguments: None,
- },
- ],
- })),
- ],
- }
- "###);
-}
-
-#[test]
-fn test_bool_lit() {
- let meta = test("#[foo(true)]");
-
- snapshot!(meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Lit(Lit::Bool {
- value: true,
- }),
- ],
- }
- "###);
-}
-
-fn test(input: &str) -> Meta {
- let attrs = Attribute::parse_outer.parse_str(input).unwrap();
-
- assert_eq!(attrs.len(), 1);
- let attr = attrs.into_iter().next().unwrap();
-
- attr.parse_meta().unwrap()
-}
diff --git a/syn/tests/test_derive_input.rs b/syn/tests/test_derive_input.rs
deleted file mode 100644
index e3685ae..0000000
--- a/syn/tests/test_derive_input.rs
+++ /dev/null
@@ -1,894 +0,0 @@
-mod features;
-
-#[macro_use]
-mod macros;
-
-use quote::quote;
-use syn::{Data, DeriveInput};
-
-#[test]
-fn test_unit() {
- let input = quote! {
- struct Unit;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Inherited,
- ident: "Unit",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-}
-
-#[test]
-fn test_struct() {
- let input = quote! {
- #[derive(Debug, Clone)]
- pub struct Item {
- pub ident: Ident,
- pub attrs: Vec<Attribute>
- }
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "derive",
- arguments: None,
- },
- ],
- },
- tokens: `( Debug , Clone )`,
- },
- ],
- vis: Visibility::Public,
- ident: "Item",
- generics: Generics,
- data: Data::Struct {
- fields: Fields::Named {
- named: [
- Field {
- vis: Visibility::Public,
- ident: Some("ident"),
- colon_token: Some,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "Ident",
- arguments: None,
- },
- ],
- },
- },
- },
- Field {
- vis: Visibility::Public,
- ident: Some("attrs"),
- colon_token: Some,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "Vec",
- arguments: PathArguments::AngleBracketed {
- args: [
- Type(Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "Attribute",
- arguments: None,
- },
- ],
- },
- }),
- ],
- },
- },
- ],
- },
- },
- },
- ],
- },
- },
- }
- "###);
-
- snapshot!(input.attrs[0].parse_meta().unwrap(), @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "derive",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "Debug",
- arguments: None,
- },
- ],
- })),
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "Clone",
- arguments: None,
- },
- ],
- })),
- ],
- }
- "###);
-}
-
-#[test]
-fn test_union() {
- let input = quote! {
- union MaybeUninit<T> {
- uninit: (),
- value: T
- }
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Inherited,
- ident: "MaybeUninit",
- generics: Generics {
- lt_token: Some,
- params: [
- Type(TypeParam {
- ident: "T",
- }),
- ],
- gt_token: Some,
- },
- data: Data::Union {
- fields: FieldsNamed {
- named: [
- Field {
- vis: Inherited,
- ident: Some("uninit"),
- colon_token: Some,
- ty: Type::Tuple,
- },
- Field {
- vis: Inherited,
- ident: Some("value"),
- colon_token: Some,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "T",
- arguments: None,
- },
- ],
- },
- },
- },
- ],
- },
- },
- }
- "###);
-}
-
-#[test]
-#[cfg(feature = "full")]
-fn test_enum() {
- let input = quote! {
- /// See the std::result module documentation for details.
- #[must_use]
- pub enum Result<T, E> {
- Ok(T),
- Err(E),
- Surprise = 0isize,
-
- // Smuggling data into a proc_macro_derive,
- // in the style of https://github.com/dtolnay/proc-macro-hack
- ProcMacroHack = (0, "data").0
- }
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "doc",
- arguments: None,
- },
- ],
- },
- tokens: `= r" See the std::result module documentation for details."`,
- },
- Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "must_use",
- arguments: None,
- },
- ],
- },
- tokens: ``,
- },
- ],
- vis: Visibility::Public,
- ident: "Result",
- generics: Generics {
- lt_token: Some,
- params: [
- Type(TypeParam {
- ident: "T",
- }),
- Type(TypeParam {
- ident: "E",
- }),
- ],
- gt_token: Some,
- },
- data: Data::Enum {
- variants: [
- Variant {
- ident: "Ok",
- fields: Fields::Unnamed {
- unnamed: [
- Field {
- vis: Inherited,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "T",
- arguments: None,
- },
- ],
- },
- },
- },
- ],
- },
- },
- Variant {
- ident: "Err",
- fields: Fields::Unnamed {
- unnamed: [
- Field {
- vis: Inherited,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "E",
- arguments: None,
- },
- ],
- },
- },
- },
- ],
- },
- },
- Variant {
- ident: "Surprise",
- fields: Unit,
- discriminant: Some(Expr::Lit {
- lit: 0isize,
- }),
- },
- Variant {
- ident: "ProcMacroHack",
- fields: Unit,
- discriminant: Some(Expr::Field {
- base: Expr::Tuple {
- elems: [
- Expr::Lit {
- lit: 0,
- },
- Expr::Lit {
- lit: "data",
- },
- ],
- },
- member: Unnamed(Index {
- index: 0,
- }),
- }),
- },
- ],
- },
- }
- "###);
-
- let meta_items: Vec<_> = input
- .attrs
- .into_iter()
- .map(|attr| attr.parse_meta().unwrap())
- .collect();
-
- snapshot!(meta_items, @r###"
- [
- Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "doc",
- arguments: None,
- },
- ],
- },
- lit: " See the std::result module documentation for details.",
- },
- Path(Path {
- segments: [
- PathSegment {
- ident: "must_use",
- arguments: None,
- },
- ],
- }),
- ]
- "###);
-}
-
-#[test]
-fn test_attr_with_path() {
- let input = quote! {
- #[::attr_args::identity
- fn main() { assert_eq!(foo(), "Hello, world!"); }]
- struct Dummy;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- leading_colon: Some,
- segments: [
- PathSegment {
- ident: "attr_args",
- arguments: None,
- },
- PathSegment {
- ident: "identity",
- arguments: None,
- },
- ],
- },
- tokens: `fn main ( ) { assert_eq ! ( foo ( ) , "Hello, world!" ) ; }`,
- },
- ],
- vis: Inherited,
- ident: "Dummy",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-
- assert!(input.attrs[0].parse_meta().is_err());
-}
-
-#[test]
-fn test_attr_with_non_mod_style_path() {
- let input = quote! {
- #[inert <T>]
- struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "inert",
- arguments: None,
- },
- ],
- },
- tokens: `< T >`,
- },
- ],
- vis: Inherited,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-
- assert!(input.attrs[0].parse_meta().is_err());
-}
-
-#[test]
-fn test_attr_with_mod_style_path_with_self() {
- let input = quote! {
- #[foo::self]
- struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- PathSegment {
- ident: "self",
- arguments: None,
- },
- ],
- },
- tokens: ``,
- },
- ],
- vis: Inherited,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-
- snapshot!(input.attrs[0].parse_meta().unwrap(), @r###"
- Path(Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- PathSegment {
- ident: "self",
- arguments: None,
- },
- ],
- })
- "###);
-}
-
-#[test]
-fn test_pub_restricted() {
- // Taken from tests/rust/src/test/ui/resolve/auxiliary/privacy-struct-ctor.rs
- let input = quote! {
- pub(in m) struct Z(pub(in m::n) u8);
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Visibility::Restricted {
- in_token: Some,
- path: Path {
- segments: [
- PathSegment {
- ident: "m",
- arguments: None,
- },
- ],
- },
- },
- ident: "Z",
- generics: Generics,
- data: Data::Struct {
- fields: Fields::Unnamed {
- unnamed: [
- Field {
- vis: Visibility::Restricted {
- in_token: Some,
- path: Path {
- segments: [
- PathSegment {
- ident: "m",
- arguments: None,
- },
- PathSegment {
- ident: "n",
- arguments: None,
- },
- ],
- },
- },
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "u8",
- arguments: None,
- },
- ],
- },
- },
- },
- ],
- },
- semi_token: Some,
- },
- }
- "###);
-}
-
-#[test]
-fn test_vis_crate() {
- let input = quote! {
- crate struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Visibility::Crate,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-}
-
-#[test]
-fn test_pub_restricted_crate() {
- let input = quote! {
- pub(crate) struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Visibility::Restricted {
- path: Path {
- segments: [
- PathSegment {
- ident: "crate",
- arguments: None,
- },
- ],
- },
- },
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-}
-
-#[test]
-fn test_pub_restricted_super() {
- let input = quote! {
- pub(super) struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Visibility::Restricted {
- path: Path {
- segments: [
- PathSegment {
- ident: "super",
- arguments: None,
- },
- ],
- },
- },
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-}
-
-#[test]
-fn test_pub_restricted_in_super() {
- let input = quote! {
- pub(in super) struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Visibility::Restricted {
- in_token: Some,
- path: Path {
- segments: [
- PathSegment {
- ident: "super",
- arguments: None,
- },
- ],
- },
- },
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-}
-
-#[test]
-fn test_fields_on_unit_struct() {
- let input = quote! {
- struct S;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Inherited,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-
- let data = match input.data {
- Data::Struct(data) => data,
- _ => panic!("expected a struct"),
- };
-
- assert_eq!(0, data.fields.iter().count());
-}
-
-#[test]
-fn test_fields_on_named_struct() {
- let input = quote! {
- struct S {
- foo: i32,
- pub bar: String,
- }
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Inherited,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Fields::Named {
- named: [
- Field {
- vis: Inherited,
- ident: Some("foo"),
- colon_token: Some,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "i32",
- arguments: None,
- },
- ],
- },
- },
- },
- Field {
- vis: Visibility::Public,
- ident: Some("bar"),
- colon_token: Some,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "String",
- arguments: None,
- },
- ],
- },
- },
- },
- ],
- },
- },
- }
- "###);
-
- let data = match input.data {
- Data::Struct(data) => data,
- _ => panic!("expected a struct"),
- };
-
- snapshot!(data.fields.into_iter().collect::<Vec<_>>(), @r###"
- [
- Field {
- vis: Inherited,
- ident: Some("foo"),
- colon_token: Some,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "i32",
- arguments: None,
- },
- ],
- },
- },
- },
- Field {
- vis: Visibility::Public,
- ident: Some("bar"),
- colon_token: Some,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "String",
- arguments: None,
- },
- ],
- },
- },
- },
- ]
- "###);
-}
-
-#[test]
-fn test_fields_on_tuple_struct() {
- let input = quote! {
- struct S(i32, pub String);
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Inherited,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Fields::Unnamed {
- unnamed: [
- Field {
- vis: Inherited,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "i32",
- arguments: None,
- },
- ],
- },
- },
- },
- Field {
- vis: Visibility::Public,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "String",
- arguments: None,
- },
- ],
- },
- },
- },
- ],
- },
- semi_token: Some,
- },
- }
- "###);
-
- let data = match input.data {
- Data::Struct(data) => data,
- _ => panic!("expected a struct"),
- };
-
- snapshot!(data.fields.iter().collect::<Vec<_>>(), @r###"
- [
- Field {
- vis: Inherited,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "i32",
- arguments: None,
- },
- ],
- },
- },
- },
- Field {
- vis: Visibility::Public,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "String",
- arguments: None,
- },
- ],
- },
- },
- },
- ]
- "###);
-}
-
-#[test]
-fn test_ambiguous_crate() {
- let input = quote! {
- // The field type is `(crate::X)` not `crate (::X)`.
- struct S(crate::X);
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Inherited,
- ident: "S",
- generics: Generics,
- data: Data::Struct {
- fields: Fields::Unnamed {
- unnamed: [
- Field {
- vis: Inherited,
- ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "crate",
- arguments: None,
- },
- PathSegment {
- ident: "X",
- arguments: None,
- },
- ],
- },
- },
- },
- ],
- },
- semi_token: Some,
- },
- }
- "###);
-}
diff --git a/syn/tests/test_expr.rs b/syn/tests/test_expr.rs
deleted file mode 100644
index 0edf6ce..0000000
--- a/syn/tests/test_expr.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-#[macro_use]
-mod macros;
-
-use std::str::FromStr;
-
-use proc_macro2::TokenStream;
-use syn::{Expr, ExprRange};
-
-#[test]
-fn test_expr_parse() {
- let code = "..100u32";
- let tt = TokenStream::from_str(code).unwrap();
- let expr: Expr = syn::parse2(tt.clone()).unwrap();
- let expr_range: ExprRange = syn::parse2(tt).unwrap();
- assert_eq!(expr, Expr::Range(expr_range));
-}
-
-#[test]
-fn test_await() {
- // Must not parse as Expr::Field.
- let expr = syn::parse_str::<Expr>("fut.await").unwrap();
-
- snapshot!(expr, @r###"
- Expr::Await {
- base: Expr::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "fut",
- arguments: None,
- },
- ],
- },
- },
- }
- "###);
-}
diff --git a/syn/tests/test_generics.rs b/syn/tests/test_generics.rs
deleted file mode 100644
index e863b77..0000000
--- a/syn/tests/test_generics.rs
+++ /dev/null
@@ -1,285 +0,0 @@
-mod features;
-
-#[macro_use]
-mod macros;
-
-use quote::quote;
-use syn::{DeriveInput, ItemFn, TypeParamBound, WhereClause, WherePredicate};
-
-#[test]
-fn test_split_for_impl() {
- let input = quote! {
- struct S<'a, 'b: 'a, #[may_dangle] T: 'a = ()> where T: Debug;
- };
-
- snapshot!(input as DeriveInput, @r###"
- DeriveInput {
- vis: Inherited,
- ident: "S",
- generics: Generics {
- lt_token: Some,
- params: [
- Lifetime(LifetimeDef {
- lifetime: Lifetime {
- ident: "a",
- },
- }),
- Lifetime(LifetimeDef {
- lifetime: Lifetime {
- ident: "b",
- },
- colon_token: Some,
- bounds: [
- Lifetime {
- ident: "a",
- },
- ],
- }),
- Type(TypeParam {
- attrs: [
- Attribute {
- style: Outer,
- path: Path {
- segments: [
- PathSegment {
- ident: "may_dangle",
- arguments: None,
- },
- ],
- },
- tokens: ``,
- },
- ],
- ident: "T",
- colon_token: Some,
- bounds: [
- Lifetime(Lifetime {
- ident: "a",
- }),
- ],
- eq_token: Some,
- default: Some(Type::Tuple),
- }),
- ],
- gt_token: Some,
- where_clause: Some(WhereClause {
- predicates: [
- Type(PredicateType {
- bounded_ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "T",
- arguments: None,
- },
- ],
- },
- },
- bounds: [
- Trait(TraitBound {
- modifier: None,
- path: Path {
- segments: [
- PathSegment {
- ident: "Debug",
- arguments: None,
- },
- ],
- },
- }),
- ],
- }),
- ],
- }),
- },
- data: Data::Struct {
- fields: Unit,
- semi_token: Some,
- },
- }
- "###);
-
- let generics = input.generics;
- let (impl_generics, ty_generics, where_clause) = generics.split_for_impl();
-
- let generated = quote! {
- impl #impl_generics MyTrait for Test #ty_generics #where_clause {}
- };
- let expected = quote! {
- impl<'a, 'b: 'a, #[may_dangle] T: 'a> MyTrait
- for Test<'a, 'b, T>
- where
- T: Debug
- {}
- };
- assert_eq!(generated.to_string(), expected.to_string());
-
- let turbofish = ty_generics.as_turbofish();
- let generated = quote! {
- Test #turbofish
- };
- let expected = quote! {
- Test::<'a, 'b, T>
- };
- assert_eq!(generated.to_string(), expected.to_string());
-}
-
-#[test]
-fn test_ty_param_bound() {
- let tokens = quote!('a);
- snapshot!(tokens as TypeParamBound, @r###"
- Lifetime(Lifetime {
- ident: "a",
- })
- "###);
-
- let tokens = quote!('_);
- snapshot!(tokens as TypeParamBound, @r###"
- Lifetime(Lifetime {
- ident: "_",
- })
- "###);
-
- let tokens = quote!(Debug);
- snapshot!(tokens as TypeParamBound, @r###"
- Trait(TraitBound {
- modifier: None,
- path: Path {
- segments: [
- PathSegment {
- ident: "Debug",
- arguments: None,
- },
- ],
- },
- })
- "###);
-
- let tokens = quote!(?Sized);
- snapshot!(tokens as TypeParamBound, @r###"
- Trait(TraitBound {
- modifier: Maybe,
- path: Path {
- segments: [
- PathSegment {
- ident: "Sized",
- arguments: None,
- },
- ],
- },
- })
- "###);
-}
-
-#[test]
-fn test_fn_precedence_in_where_clause() {
- // This should parse as two separate bounds, `FnOnce() -> i32` and `Send` - not
- // `FnOnce() -> (i32 + Send)`.
- let input = quote! {
- fn f<G>()
- where
- G: FnOnce() -> i32 + Send,
- {
- }
- };
-
- snapshot!(input as ItemFn, @r###"
- ItemFn {
- vis: Inherited,
- sig: Signature {
- ident: "f",
- generics: Generics {
- lt_token: Some,
- params: [
- Type(TypeParam {
- ident: "G",
- }),
- ],
- gt_token: Some,
- where_clause: Some(WhereClause {
- predicates: [
- Type(PredicateType {
- bounded_ty: Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "G",
- arguments: None,
- },
- ],
- },
- },
- bounds: [
- Trait(TraitBound {
- modifier: None,
- path: Path {
- segments: [
- PathSegment {
- ident: "FnOnce",
- arguments: PathArguments::Parenthesized {
- output: Type(
- Type::Path {
- path: Path {
- segments: [
- PathSegment {
- ident: "i32",
- arguments: None,
- },
- ],
- },
- },
- ),
- },
- },
- ],
- },
- }),
- Trait(TraitBound {
- modifier: None,
- path: Path {
- segments: [
- PathSegment {
- ident: "Send",
- arguments: None,
- },
- ],
- },
- }),
- ],
- }),
- ],
- }),
- },
- output: Default,
- },
- block: Block,
- }
- "###);
-
- let where_clause = input.sig.generics.where_clause.as_ref().unwrap();
- assert_eq!(where_clause.predicates.len(), 1);
-
- let predicate = match &where_clause.predicates[0] {
- WherePredicate::Type(pred) => pred,
- _ => panic!("wrong predicate kind"),
- };
-
- assert_eq!(predicate.bounds.len(), 2, "{:#?}", predicate.bounds);
-
- let first_bound = &predicate.bounds[0];
- assert_eq!(quote!(#first_bound).to_string(), "FnOnce ( ) -> i32");
-
- let second_bound = &predicate.bounds[1];
- assert_eq!(quote!(#second_bound).to_string(), "Send");
-}
-
-#[test]
-fn test_where_clause_at_end_of_input() {
- let input = quote! {
- where
- };
-
- snapshot!(input as WhereClause, @"WhereClause");
-
- assert_eq!(input.predicates.len(), 0);
-}
diff --git a/syn/tests/test_grouping.rs b/syn/tests/test_grouping.rs
deleted file mode 100644
index 4e43ab8..0000000
--- a/syn/tests/test_grouping.rs
+++ /dev/null
@@ -1,55 +0,0 @@
-mod features;
-
-#[macro_use]
-mod macros;
-
-use proc_macro2::{Delimiter, Group, Literal, Punct, Spacing, TokenStream, TokenTree};
-use syn::Expr;
-
-use std::iter::FromIterator;
-
-#[test]
-fn test_grouping() {
- let tokens: TokenStream = TokenStream::from_iter(vec![
- TokenTree::Literal(Literal::i32_suffixed(1)),
- TokenTree::Punct(Punct::new('+', Spacing::Alone)),
- TokenTree::Group(Group::new(
- Delimiter::None,
- TokenStream::from_iter(vec![
- TokenTree::Literal(Literal::i32_suffixed(2)),
- TokenTree::Punct(Punct::new('+', Spacing::Alone)),
- TokenTree::Literal(Literal::i32_suffixed(3)),
- ]),
- )),
- TokenTree::Punct(Punct::new('*', Spacing::Alone)),
- TokenTree::Literal(Literal::i32_suffixed(4)),
- ]);
-
- assert_eq!(tokens.to_string(), "1i32 + 2i32 + 3i32 * 4i32");
-
- snapshot!(tokens as Expr, @r###"
- Expr::Binary {
- left: Expr::Lit {
- lit: 1i32,
- },
- op: Add,
- right: Expr::Binary {
- left: Expr::Group {
- expr: Expr::Binary {
- left: Expr::Lit {
- lit: 2i32,
- },
- op: Add,
- right: Expr::Lit {
- lit: 3i32,
- },
- },
- },
- op: Mul,
- right: Expr::Lit {
- lit: 4i32,
- },
- },
- }
- "###);
-}
diff --git a/syn/tests/test_ident.rs b/syn/tests/test_ident.rs
deleted file mode 100644
index 7578381..0000000
--- a/syn/tests/test_ident.rs
+++ /dev/null
@@ -1,87 +0,0 @@
-mod features;
-
-use proc_macro2::{Ident, Span, TokenStream};
-use std::str::FromStr;
-use syn::Result;
-
-fn parse(s: &str) -> Result<Ident> {
- syn::parse2(TokenStream::from_str(s).unwrap())
-}
-
-fn new(s: &str) -> Ident {
- Ident::new(s, Span::call_site())
-}
-
-#[test]
-fn ident_parse() {
- parse("String").unwrap();
-}
-
-#[test]
-fn ident_parse_keyword() {
- parse("abstract").unwrap_err();
-}
-
-#[test]
-fn ident_parse_empty() {
- parse("").unwrap_err();
-}
-
-#[test]
-fn ident_parse_lifetime() {
- parse("'static").unwrap_err();
-}
-
-#[test]
-fn ident_parse_underscore() {
- parse("_").unwrap_err();
-}
-
-#[test]
-fn ident_parse_number() {
- parse("255").unwrap_err();
-}
-
-#[test]
-fn ident_parse_invalid() {
- parse("a#").unwrap_err();
-}
-
-#[test]
-fn ident_new() {
- new("String");
-}
-
-#[test]
-fn ident_new_keyword() {
- new("abstract");
-}
-
-#[test]
-#[should_panic(expected = "use Option<Ident>")]
-fn ident_new_empty() {
- new("");
-}
-
-#[test]
-#[should_panic(expected = "not a valid Ident")]
-fn ident_new_lifetime() {
- new("'static");
-}
-
-#[test]
-fn ident_new_underscore() {
- new("_");
-}
-
-#[test]
-#[should_panic(expected = "use Literal instead")]
-fn ident_new_number() {
- new("255");
-}
-
-#[test]
-#[should_panic(expected = "\"a#\" is not a valid Ident")]
-fn ident_new_invalid() {
- new("a#");
-}
diff --git a/syn/tests/test_iterators.rs b/syn/tests/test_iterators.rs
deleted file mode 100644
index f107297..0000000
--- a/syn/tests/test_iterators.rs
+++ /dev/null
@@ -1,51 +0,0 @@
-use syn::punctuated::{Pair, Punctuated};
-use syn::Token;
-
-mod features;
-
-#[macro_use]
-mod macros;
-
-macro_rules! check_exact_size_iterator {
- ($iter:expr) => {{
- let iter = $iter;
- let size_hint = iter.size_hint();
- let len = iter.len();
- let count = iter.count();
- assert_eq!(len, count);
- assert_eq!(size_hint, (count, Some(count)));
- }};
-}
-
-#[test]
-fn pairs() {
- let mut p: Punctuated<_, Token![,]> = punctuated!(2, 3, 4);
-
- check_exact_size_iterator!(p.pairs());
- check_exact_size_iterator!(p.pairs_mut());
- check_exact_size_iterator!(p.into_pairs());
-
- let mut p: Punctuated<_, Token![,]> = punctuated!(2, 3, 4);
-
- assert_eq!(p.pairs().next_back().map(Pair::into_value), Some(&4));
- assert_eq!(
- p.pairs_mut().next_back().map(Pair::into_value),
- Some(&mut 4)
- );
- assert_eq!(p.into_pairs().next_back().map(Pair::into_value), Some(4));
-}
-
-#[test]
-fn iter() {
- let mut p: Punctuated<_, Token![,]> = punctuated!(2, 3, 4);
-
- check_exact_size_iterator!(p.iter());
- check_exact_size_iterator!(p.iter_mut());
- check_exact_size_iterator!(p.into_iter());
-
- let mut p: Punctuated<_, Token![,]> = punctuated!(2, 3, 4);
-
- assert_eq!(p.iter().next_back(), Some(&4));
- assert_eq!(p.iter_mut().next_back(), Some(&mut 4));
- assert_eq!(p.into_iter().next_back(), Some(4));
-}
diff --git a/syn/tests/test_lit.rs b/syn/tests/test_lit.rs
deleted file mode 100644
index 0b300c4..0000000
--- a/syn/tests/test_lit.rs
+++ /dev/null
@@ -1,184 +0,0 @@
-mod features;
-
-use proc_macro2::{TokenStream, TokenTree};
-use quote::ToTokens;
-use std::str::FromStr;
-use syn::Lit;
-
-fn lit(s: &str) -> Lit {
- match TokenStream::from_str(s)
- .unwrap()
- .into_iter()
- .next()
- .unwrap()
- {
- TokenTree::Literal(lit) => Lit::new(lit),
- _ => panic!(),
- }
-}
-
-#[test]
-fn strings() {
- fn test_string(s: &str, value: &str) {
- match lit(s) {
- Lit::Str(lit) => {
- assert_eq!(lit.value(), value);
- let again = lit.into_token_stream().to_string();
- if again != s {
- test_string(&again, value);
- }
- }
- wrong => panic!("{:?}", wrong),
- }
- }
-
- test_string("\"a\"", "a");
- test_string("\"\\n\"", "\n");
- test_string("\"\\r\"", "\r");
- test_string("\"\\t\"", "\t");
- test_string("\"🐕\"", "🐕"); // NOTE: This is an emoji
- test_string("\"\\\"\"", "\"");
- test_string("\"'\"", "'");
- test_string("\"\"", "");
- test_string("\"\\u{1F415}\"", "\u{1F415}");
- test_string(
- "\"contains\nnewlines\\\nescaped newlines\"",
- "contains\nnewlinesescaped newlines",
- );
- test_string("r\"raw\nstring\\\nhere\"", "raw\nstring\\\nhere");
-}
-
-#[test]
-fn byte_strings() {
- fn test_byte_string(s: &str, value: &[u8]) {
- match lit(s) {
- Lit::ByteStr(lit) => {
- assert_eq!(lit.value(), value);
- let again = lit.into_token_stream().to_string();
- if again != s {
- test_byte_string(&again, value);
- }
- }
- wrong => panic!("{:?}", wrong),
- }
- }
-
- test_byte_string("b\"a\"", b"a");
- test_byte_string("b\"\\n\"", b"\n");
- test_byte_string("b\"\\r\"", b"\r");
- test_byte_string("b\"\\t\"", b"\t");
- test_byte_string("b\"\\\"\"", b"\"");
- test_byte_string("b\"'\"", b"'");
- test_byte_string("b\"\"", b"");
- test_byte_string(
- "b\"contains\nnewlines\\\nescaped newlines\"",
- b"contains\nnewlinesescaped newlines",
- );
- test_byte_string("br\"raw\nstring\\\nhere\"", b"raw\nstring\\\nhere");
-}
-
-#[test]
-fn bytes() {
- fn test_byte(s: &str, value: u8) {
- match lit(s) {
- Lit::Byte(lit) => {
- assert_eq!(lit.value(), value);
- let again = lit.into_token_stream().to_string();
- assert_eq!(again, s);
- }
- wrong => panic!("{:?}", wrong),
- }
- }
-
- test_byte("b'a'", b'a');
- test_byte("b'\\n'", b'\n');
- test_byte("b'\\r'", b'\r');
- test_byte("b'\\t'", b'\t');
- test_byte("b'\\''", b'\'');
- test_byte("b'\"'", b'"');
-}
-
-#[test]
-fn chars() {
- fn test_char(s: &str, value: char) {
- match lit(s) {
- Lit::Char(lit) => {
- assert_eq!(lit.value(), value);
- let again = lit.into_token_stream().to_string();
- if again != s {
- test_char(&again, value);
- }
- }
- wrong => panic!("{:?}", wrong),
- }
- }
-
- test_char("'a'", 'a');
- test_char("'\\n'", '\n');
- test_char("'\\r'", '\r');
- test_char("'\\t'", '\t');
- test_char("'🐕'", '🐕'); // NOTE: This is an emoji
- test_char("'\\''", '\'');
- test_char("'\"'", '"');
- test_char("'\\u{1F415}'", '\u{1F415}');
-}
-
-#[test]
-fn ints() {
- fn test_int(s: &str, value: u64, suffix: &str) {
- match lit(s) {
- Lit::Int(lit) => {
- assert_eq!(lit.base10_digits().parse::<u64>().unwrap(), value);
- assert_eq!(lit.suffix(), suffix);
- let again = lit.into_token_stream().to_string();
- if again != s {
- test_int(&again, value, suffix);
- }
- }
- wrong => panic!("{:?}", wrong),
- }
- }
-
- test_int("5", 5, "");
- test_int("5u32", 5, "u32");
- test_int("5_0", 50, "");
- test_int("5_____0_____", 50, "");
- test_int("0x7f", 127, "");
- test_int("0x7F", 127, "");
- test_int("0b1001", 9, "");
- test_int("0o73", 59, "");
- test_int("0x7Fu8", 127, "u8");
- test_int("0b1001i8", 9, "i8");
- test_int("0o73u32", 59, "u32");
- test_int("0x__7___f_", 127, "");
- test_int("0x__7___F_", 127, "");
- test_int("0b_1_0__01", 9, "");
- test_int("0o_7__3", 59, "");
- test_int("0x_7F__u8", 127, "u8");
- test_int("0b__10__0_1i8", 9, "i8");
- test_int("0o__7__________________3u32", 59, "u32");
-}
-
-#[test]
-fn floats() {
- #[cfg_attr(feature = "cargo-clippy", allow(float_cmp))]
- fn test_float(s: &str, value: f64, suffix: &str) {
- match lit(s) {
- Lit::Float(lit) => {
- assert_eq!(lit.base10_digits().parse::<f64>().unwrap(), value);
- assert_eq!(lit.suffix(), suffix);
- let again = lit.into_token_stream().to_string();
- if again != s {
- test_float(&again, value, suffix);
- }
- }
- wrong => panic!("{:?}", wrong),
- }
- }
-
- test_float("5.5", 5.5, "");
- test_float("5.5E12", 5.5e12, "");
- test_float("5.5e12", 5.5e12, "");
- test_float("1.0__3e-12", 1.03e-12, "");
- test_float("1.03e+12", 1.03e12, "");
-}
diff --git a/syn/tests/test_meta.rs b/syn/tests/test_meta.rs
deleted file mode 100644
index 618296e..0000000
--- a/syn/tests/test_meta.rs
+++ /dev/null
@@ -1,341 +0,0 @@
-mod features;
-
-#[macro_use]
-mod macros;
-
-use syn::{Meta, MetaList, MetaNameValue, NestedMeta};
-
-#[test]
-fn test_parse_meta_item_word() {
- let input = "hello";
-
- snapshot!(input as Meta, @r###"
- Path(Path {
- segments: [
- PathSegment {
- ident: "hello",
- arguments: None,
- },
- ],
- })
- "###);
-}
-
-#[test]
-fn test_parse_meta_name_value() {
- let input = "foo = 5";
- let (inner, meta) = (input, input);
-
- snapshot!(inner as MetaNameValue, @r###"
- MetaNameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }
- "###);
-
- snapshot!(meta as Meta, @r###"
- Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }
- "###);
-
- assert_eq!(meta, inner.into());
-}
-
-#[test]
-fn test_parse_meta_name_value_with_keyword() {
- let input = "static = 5";
- let (inner, meta) = (input, input);
-
- snapshot!(inner as MetaNameValue, @r###"
- MetaNameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "static",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }
- "###);
-
- snapshot!(meta as Meta, @r###"
- Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "static",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }
- "###);
-
- assert_eq!(meta, inner.into());
-}
-
-#[test]
-fn test_parse_meta_name_value_with_bool() {
- let input = "true = 5";
- let (inner, meta) = (input, input);
-
- snapshot!(inner as MetaNameValue, @r###"
- MetaNameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "true",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }
- "###);
-
- snapshot!(meta as Meta, @r###"
- Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "true",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }
- "###);
-
- assert_eq!(meta, inner.into());
-}
-
-#[test]
-fn test_parse_meta_item_list_lit() {
- let input = "foo(5)";
- let (inner, meta) = (input, input);
-
- snapshot!(inner as MetaList, @r###"
- MetaList {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Lit(5),
- ],
- }
- "###);
-
- snapshot!(meta as Meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Lit(5),
- ],
- }
- "###);
-
- assert_eq!(meta, inner.into());
-}
-
-#[test]
-fn test_parse_meta_item_multiple() {
- let input = "foo(word, name = 5, list(name2 = 6), word2)";
- let (inner, meta) = (input, input);
-
- snapshot!(inner as MetaList, @r###"
- MetaList {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "word",
- arguments: None,
- },
- ],
- })),
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "name",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }),
- Meta(Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "list",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "name2",
- arguments: None,
- },
- ],
- },
- lit: 6,
- }),
- ],
- }),
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "word2",
- arguments: None,
- },
- ],
- })),
- ],
- }
- "###);
-
- snapshot!(meta as Meta, @r###"
- Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "foo",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "word",
- arguments: None,
- },
- ],
- })),
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "name",
- arguments: None,
- },
- ],
- },
- lit: 5,
- }),
- Meta(Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "list",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "name2",
- arguments: None,
- },
- ],
- },
- lit: 6,
- }),
- ],
- }),
- Meta(Path(Path {
- segments: [
- PathSegment {
- ident: "word2",
- arguments: None,
- },
- ],
- })),
- ],
- }
- "###);
-
- assert_eq!(meta, inner.into());
-}
-
-#[test]
-fn test_parse_nested_meta() {
- let input = "5";
- snapshot!(input as NestedMeta, @"Lit(5)");
-
- let input = "list(name2 = 6)";
- snapshot!(input as NestedMeta, @r###"
- Meta(Meta::List {
- path: Path {
- segments: [
- PathSegment {
- ident: "list",
- arguments: None,
- },
- ],
- },
- nested: [
- Meta(Meta::NameValue {
- path: Path {
- segments: [
- PathSegment {
- ident: "name2",
- arguments: None,
- },
- ],
- },
- lit: 6,
- }),
- ],
- })
- "###);
-}
diff --git a/syn/tests/test_parse_buffer.rs b/syn/tests/test_parse_buffer.rs
deleted file mode 100644
index d3f10c0..0000000
--- a/syn/tests/test_parse_buffer.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-use syn::parenthesized;
-use syn::parse::{discouraged::Speculative, Parse, ParseStream, Parser, Result};
-
-#[test]
-#[should_panic(expected = "Fork was not derived from the advancing parse stream")]
-fn smuggled_speculative_cursor_between_sources() {
- struct BreakRules;
- impl Parse for BreakRules {
- fn parse(input1: ParseStream) -> Result<Self> {
- let nested = |input2: ParseStream| {
- input1.advance_to(&input2);
- Ok(Self)
- };
- nested.parse_str("")
- }
- }
-
- syn::parse_str::<BreakRules>("").unwrap();
-}
-
-#[test]
-#[should_panic(expected = "Fork was not derived from the advancing parse stream")]
-fn smuggled_speculative_cursor_between_brackets() {
- struct BreakRules;
- impl Parse for BreakRules {
- fn parse(input: ParseStream) -> Result<Self> {
- let a;
- let b;
- parenthesized!(a in input);
- parenthesized!(b in input);
- a.advance_to(&b);
- Ok(Self)
- }
- }
-
- syn::parse_str::<BreakRules>("()()").unwrap();
-}
-
-#[test]
-#[should_panic(expected = "Fork was not derived from the advancing parse stream")]
-fn smuggled_speculative_cursor_into_brackets() {
- struct BreakRules;
- impl Parse for BreakRules {
- fn parse(input: ParseStream) -> Result<Self> {
- let a;
- parenthesized!(a in input);
- input.advance_to(&a);
- Ok(Self)
- }
- }
-
- syn::parse_str::<BreakRules>("()").unwrap();
-}
diff --git a/syn/tests/test_pat.rs b/syn/tests/test_pat.rs
deleted file mode 100644
index cce4b80..0000000
--- a/syn/tests/test_pat.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-mod features;
-
-use quote::quote;
-use syn::Pat;
-
-#[test]
-fn test_pat_ident() {
- match syn::parse2(quote!(self)).unwrap() {
- Pat::Ident(_) => (),
- value => panic!("expected PatIdent, got {:?}", value),
- }
-}
-
-#[test]
-fn test_pat_path() {
- match syn::parse2(quote!(self::CONST)).unwrap() {
- Pat::Path(_) => (),
- value => panic!("expected PatPath, got {:?}", value),
- }
-}
diff --git a/syn/tests/test_precedence.rs b/syn/tests/test_precedence.rs
deleted file mode 100644
index 3529c06..0000000
--- a/syn/tests/test_precedence.rs
+++ /dev/null
@@ -1,394 +0,0 @@
-#![cfg(not(syn_disable_nightly_tests))]
-#![recursion_limit = "1024"]
-#![feature(rustc_private)]
-
-//! The tests in this module do the following:
-//!
-//! 1. Parse a given expression in both `syn` and `libsyntax`.
-//! 2. Fold over the expression adding brackets around each subexpression (with
-//! some complications - see the `syn_brackets` and `libsyntax_brackets`
-//! methods).
-//! 3. Serialize the `syn` expression back into a string, and re-parse it with
-//! `libsyntax`.
-//! 4. Respan all of the expressions, replacing the spans with the default
-//! spans.
-//! 5. Compare the expressions with one another, if they are not equal fail.
-
-extern crate rustc_data_structures;
-extern crate rustc_span;
-extern crate syntax;
-
-mod features;
-
-use quote::quote;
-use rayon::iter::{IntoParallelIterator, ParallelIterator};
-use regex::Regex;
-use rustc_span::edition::Edition;
-use syntax::ast;
-use syntax::ptr::P;
-use walkdir::{DirEntry, WalkDir};
-
-use std::fs::File;
-use std::io::Read;
-use std::process;
-use std::sync::atomic::{AtomicUsize, Ordering};
-
-use common::eq::SpanlessEq;
-use common::parse;
-
-#[macro_use]
-mod macros;
-
-#[allow(dead_code)]
-mod common;
-
-mod repo;
-
-/// Test some pre-set expressions chosen by us.
-#[test]
-fn test_simple_precedence() {
- const EXPRS: &[&str] = &[
- "1 + 2 * 3 + 4",
- "1 + 2 * ( 3 + 4 )",
- "{ for i in r { } *some_ptr += 1; }",
- "{ loop { break 5; } }",
- "{ if true { () }.mthd() }",
- "{ for i in unsafe { 20 } { } }",
- ];
-
- let mut failed = 0;
-
- for input in EXPRS {
- let expr = if let Some(expr) = parse::syn_expr(input) {
- expr
- } else {
- failed += 1;
- continue;
- };
-
- let pf = match test_expressions(vec![expr]) {
- (1, 0) => "passed",
- (0, 1) => {
- failed += 1;
- "failed"
- }
- _ => unreachable!(),
- };
- errorf!("=== {}: {}\n", input, pf);
- }
-
- if failed > 0 {
- panic!("Failed {} tests", failed);
- }
-}
-
-/// Test expressions from rustc, like in `test_round_trip`.
-#[test]
-fn test_rustc_precedence() {
- repo::clone_rust();
- let abort_after = common::abort_after();
- if abort_after == 0 {
- panic!("Skipping all precedence tests");
- }
-
- let passed = AtomicUsize::new(0);
- let failed = AtomicUsize::new(0);
-
- // 2018 edition is hard
- let edition_regex = Regex::new(r"\b(async|try)[!(]").unwrap();
-
- WalkDir::new("tests/rust")
- .sort_by(|a, b| a.file_name().cmp(b.file_name()))
- .into_iter()
- .filter_entry(repo::base_dir_filter)
- .collect::<Result<Vec<DirEntry>, walkdir::Error>>()
- .unwrap()
- .into_par_iter()
- .for_each(|entry| {
- let path = entry.path();
- if path.is_dir() {
- return;
- }
-
- // Our version of `libsyntax` can't parse this tests
- if path
- .to_str()
- .unwrap()
- .ends_with("optional_comma_in_match_arm.rs")
- {
- return;
- }
-
- let mut file = File::open(path).unwrap();
- let mut content = String::new();
- file.read_to_string(&mut content).unwrap();
- let content = edition_regex.replace_all(&content, "_$0");
-
- let (l_passed, l_failed) = match syn::parse_file(&content) {
- Ok(file) => {
- let exprs = collect_exprs(file);
- test_expressions(exprs)
- }
- Err(msg) => {
- errorf!("syn failed to parse\n{:?}\n", msg);
- (0, 1)
- }
- };
-
- errorf!(
- "=== {}: {} passed | {} failed\n",
- path.display(),
- l_passed,
- l_failed
- );
-
- passed.fetch_add(l_passed, Ordering::SeqCst);
- let prev_failed = failed.fetch_add(l_failed, Ordering::SeqCst);
-
- if prev_failed + l_failed >= abort_after {
- process::exit(1);
- }
- });
-
- let passed = passed.load(Ordering::SeqCst);
- let failed = failed.load(Ordering::SeqCst);
-
- errorf!("\n===== Precedence Test Results =====\n");
- errorf!("{} passed | {} failed\n", passed, failed);
-
- if failed > 0 {
- panic!("{} failures", failed);
- }
-}
-
-fn test_expressions(exprs: Vec<syn::Expr>) -> (usize, usize) {
- let mut passed = 0;
- let mut failed = 0;
-
- syntax::with_globals(Edition::Edition2018, || {
- for expr in exprs {
- let raw = quote!(#expr).to_string();
-
- let libsyntax_ast = if let Some(e) = libsyntax_parse_and_rewrite(&raw) {
- e
- } else {
- failed += 1;
- errorf!("\nFAIL - libsyntax failed to parse raw\n");
- continue;
- };
-
- let syn_expr = syn_brackets(expr);
- let syn_ast = if let Some(e) = parse::libsyntax_expr(&quote!(#syn_expr).to_string()) {
- e
- } else {
- failed += 1;
- errorf!("\nFAIL - libsyntax failed to parse bracketed\n");
- continue;
- };
-
- if SpanlessEq::eq(&syn_ast, &libsyntax_ast) {
- passed += 1;
- } else {
- failed += 1;
- errorf!("\nFAIL\n{:?}\n!=\n{:?}\n", syn_ast, libsyntax_ast);
- }
- }
- });
-
- (passed, failed)
-}
-
-fn libsyntax_parse_and_rewrite(input: &str) -> Option<P<ast::Expr>> {
- parse::libsyntax_expr(input).and_then(libsyntax_brackets)
-}
-
-/// Wrap every expression which is not already wrapped in parens with parens, to
-/// reveal the precidence of the parsed expressions, and produce a stringified
-/// form of the resulting expression.
-///
-/// This method operates on libsyntax objects.
-fn libsyntax_brackets(mut libsyntax_expr: P<ast::Expr>) -> Option<P<ast::Expr>> {
- use rustc_data_structures::thin_vec::ThinVec;
- use rustc_span::DUMMY_SP;
- use std::mem;
- use syntax::ast::{Block, Expr, ExprKind, Field, Mac, Pat, Stmt, StmtKind, Ty};
- use syntax::mut_visit::MutVisitor;
- use syntax::util::map_in_place::MapInPlace;
-
- struct BracketsVisitor {
- failed: bool,
- };
-
- fn flat_map_field<T: MutVisitor>(mut f: Field, vis: &mut T) -> Vec<Field> {
- if f.is_shorthand {
- noop_visit_expr(&mut f.expr, vis);
- } else {
- vis.visit_expr(&mut f.expr);
- }
- vec![f]
- }
-
- fn flat_map_stmt<T: MutVisitor>(stmt: Stmt, vis: &mut T) -> Vec<Stmt> {
- let kind = match stmt.kind {
- // Don't wrap toplevel expressions in statements.
- StmtKind::Expr(mut e) => {
- noop_visit_expr(&mut e, vis);
- StmtKind::Expr(e)
- }
- StmtKind::Semi(mut e) => {
- noop_visit_expr(&mut e, vis);
- StmtKind::Semi(e)
- }
- s => s,
- };
-
- vec![Stmt { kind, ..stmt }]
- }
-
- fn noop_visit_expr<T: MutVisitor>(e: &mut Expr, vis: &mut T) {
- use syntax::mut_visit::{noop_visit_expr, visit_opt, visit_thin_attrs};
- match &mut e.kind {
- ExprKind::Struct(path, fields, expr) => {
- vis.visit_path(path);
- fields.flat_map_in_place(|field| flat_map_field(field, vis));
- visit_opt(expr, |expr| vis.visit_expr(expr));
- vis.visit_id(&mut e.id);
- vis.visit_span(&mut e.span);
- visit_thin_attrs(&mut e.attrs, vis);
- }
- _ => noop_visit_expr(e, vis),
- }
- }
-
- impl MutVisitor for BracketsVisitor {
- fn visit_expr(&mut self, e: &mut P<Expr>) {
- noop_visit_expr(e, self);
- match e.kind {
- ExprKind::If(..) | ExprKind::Block(..) | ExprKind::Let(..) => {}
- _ => {
- let inner = mem::replace(
- e,
- P(Expr {
- id: ast::DUMMY_NODE_ID,
- kind: ExprKind::Err,
- span: DUMMY_SP,
- attrs: ThinVec::new(),
- }),
- );
- e.kind = ExprKind::Paren(inner);
- }
- }
- }
-
- fn visit_block(&mut self, block: &mut P<Block>) {
- self.visit_id(&mut block.id);
- block
- .stmts
- .flat_map_in_place(|stmt| flat_map_stmt(stmt, self));
- self.visit_span(&mut block.span);
- }
-
- // We don't want to look at expressions that might appear in patterns or
- // types yet. We'll look into comparing those in the future. For now
- // focus on expressions appearing in other places.
- fn visit_pat(&mut self, pat: &mut P<Pat>) {
- let _ = pat;
- }
-
- fn visit_ty(&mut self, ty: &mut P<Ty>) {
- let _ = ty;
- }
-
- fn visit_mac(&mut self, mac: &mut Mac) {
- // By default when folding over macros, libsyntax panics. This is
- // because it's usually not what you want, you want to run after
- // macro expansion. We do want to do that (syn doesn't do macro
- // expansion), so we implement visit_mac to just return the macro
- // unchanged.
- let _ = mac;
- }
- }
-
- let mut folder = BracketsVisitor { failed: false };
- folder.visit_expr(&mut libsyntax_expr);
- if folder.failed {
- None
- } else {
- Some(libsyntax_expr)
- }
-}
-
-/// Wrap every expression which is not already wrapped in parens with parens, to
-/// reveal the precedence of the parsed expressions, and produce a stringified
-/// form of the resulting expression.
-fn syn_brackets(syn_expr: syn::Expr) -> syn::Expr {
- use syn::fold::*;
- use syn::*;
-
- struct ParenthesizeEveryExpr;
- impl Fold for ParenthesizeEveryExpr {
- fn fold_expr(&mut self, expr: Expr) -> Expr {
- match expr {
- Expr::Group(_) => unreachable!(),
- Expr::If(..) | Expr::Unsafe(..) | Expr::Block(..) | Expr::Let(..) => {
- fold_expr(self, expr)
- }
- _ => Expr::Paren(ExprParen {
- attrs: Vec::new(),
- expr: Box::new(fold_expr(self, expr)),
- paren_token: token::Paren::default(),
- }),
- }
- }
-
- fn fold_stmt(&mut self, stmt: Stmt) -> Stmt {
- match stmt {
- // Don't wrap toplevel expressions in statements.
- Stmt::Expr(e) => Stmt::Expr(fold_expr(self, e)),
- Stmt::Semi(e, semi) => Stmt::Semi(fold_expr(self, e), semi),
- s => s,
- }
- }
-
- // We don't want to look at expressions that might appear in patterns or
- // types yet. We'll look into comparing those in the future. For now
- // focus on expressions appearing in other places.
- fn fold_pat(&mut self, pat: Pat) -> Pat {
- pat
- }
-
- fn fold_type(&mut self, ty: Type) -> Type {
- ty
- }
- }
-
- let mut folder = ParenthesizeEveryExpr;
- folder.fold_expr(syn_expr)
-}
-
-/// Walk through a crate collecting all expressions we can find in it.
-fn collect_exprs(file: syn::File) -> Vec<syn::Expr> {
- use syn::fold::*;
- use syn::punctuated::Punctuated;
- use syn::*;
-
- struct CollectExprs(Vec<Expr>);
- impl Fold for CollectExprs {
- fn fold_expr(&mut self, expr: Expr) -> Expr {
- match expr {
- Expr::Verbatim(tokens) if tokens.is_empty() => {}
- _ => self.0.push(expr),
- }
-
- Expr::Tuple(ExprTuple {
- attrs: vec![],
- elems: Punctuated::new(),
- paren_token: token::Paren::default(),
- })
- }
- }
-
- let mut folder = CollectExprs(vec![]);
- folder.fold_file(file);
- folder.0
-}
diff --git a/syn/tests/test_receiver.rs b/syn/tests/test_receiver.rs
deleted file mode 100644
index 168db8f..0000000
--- a/syn/tests/test_receiver.rs
+++ /dev/null
@@ -1,109 +0,0 @@
-mod features;
-
-use syn::{FnArg, Receiver, TraitItemMethod};
-
-#[test]
-fn test_by_value() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn by_value(self: Self););
- match sig.receiver() {
- Some(FnArg::Typed(_)) => (),
- value => panic!("expected FnArg::Typed, got {:?}", value),
- }
-}
-
-#[test]
-fn test_by_mut_value() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn by_mut(mut self: Self););
- match sig.receiver() {
- Some(FnArg::Typed(_)) => (),
- value => panic!("expected FnArg::Typed, got {:?}", value),
- }
-}
-
-#[test]
-fn test_by_ref() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn by_ref(self: &Self););
- match sig.receiver() {
- Some(FnArg::Typed(_)) => (),
- value => panic!("expected FnArg::Typed, got {:?}", value),
- }
-}
-
-#[test]
-fn test_by_box() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn by_box(self: Box<Self>););
- match sig.receiver() {
- Some(FnArg::Typed(_)) => (),
- value => panic!("expected FnArg::Typed, got {:?}", value),
- }
-}
-
-#[test]
-fn test_by_pin() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn by_pin(self: Pin<Self>););
- match sig.receiver() {
- Some(FnArg::Typed(_)) => (),
- value => panic!("expected FnArg::Typed, got {:?}", value),
- }
-}
-
-#[test]
-fn test_explicit_type() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn explicit_type(self: Pin<MyType>););
- match sig.receiver() {
- Some(FnArg::Typed(_)) => (),
- value => panic!("expected FnArg::Typed, got {:?}", value),
- }
-}
-
-#[test]
-fn test_value_shorthand() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn value_shorthand(self););
- match sig.receiver() {
- Some(FnArg::Receiver(Receiver {
- reference: None,
- mutability: None,
- ..
- })) => (),
- value => panic!("expected FnArg::Receiver without ref/mut, got {:?}", value),
- }
-}
-
-#[test]
-fn test_mut_value_shorthand() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn mut_value_shorthand(mut self););
- match sig.receiver() {
- Some(FnArg::Receiver(Receiver {
- reference: None,
- mutability: Some(_),
- ..
- })) => (),
- value => panic!("expected FnArg::Receiver with mut, got {:?}", value),
- }
-}
-
-#[test]
-fn test_ref_shorthand() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn ref_shorthand(&self););
- match sig.receiver() {
- Some(FnArg::Receiver(Receiver {
- reference: Some(_),
- mutability: None,
- ..
- })) => (),
- value => panic!("expected FnArg::Receiver with ref, got {:?}", value),
- }
-}
-
-#[test]
-fn test_ref_mut_shorthand() {
- let TraitItemMethod { sig, .. } = syn::parse_quote!(fn ref_mut_shorthand(&mut self););
- match sig.receiver() {
- Some(FnArg::Receiver(Receiver {
- reference: Some(_),
- mutability: Some(_),
- ..
- })) => (),
- value => panic!("expected FnArg::Receiver with ref+mut, got {:?}", value),
- }
-}
diff --git a/syn/tests/test_round_trip.rs b/syn/tests/test_round_trip.rs
deleted file mode 100644
index 435bd6a..0000000
--- a/syn/tests/test_round_trip.rs
+++ /dev/null
@@ -1,151 +0,0 @@
-#![cfg(not(syn_disable_nightly_tests))]
-#![recursion_limit = "1024"]
-#![feature(rustc_private)]
-
-extern crate rustc_expand;
-extern crate rustc_parse as parse;
-extern crate rustc_span;
-extern crate syntax;
-
-mod features;
-
-use quote::quote;
-use rayon::iter::{IntoParallelIterator, ParallelIterator};
-use rustc_span::edition::Edition;
-use rustc_span::FileName;
-use syntax::ast;
-use syntax::errors::PResult;
-use syntax::sess::ParseSess;
-use syntax::source_map::FilePathMapping;
-use walkdir::{DirEntry, WalkDir};
-
-use std::fs::File;
-use std::io::Read;
-use std::panic;
-use std::process;
-use std::sync::atomic::{AtomicUsize, Ordering};
-use std::time::Instant;
-
-#[macro_use]
-mod macros;
-
-#[allow(dead_code)]
-mod common;
-
-mod repo;
-
-use common::eq::SpanlessEq;
-
-#[test]
-fn test_round_trip() {
- repo::clone_rust();
- let abort_after = common::abort_after();
- if abort_after == 0 {
- panic!("Skipping all round_trip tests");
- }
-
- let failed = AtomicUsize::new(0);
-
- WalkDir::new("tests/rust")
- .sort_by(|a, b| a.file_name().cmp(b.file_name()))
- .into_iter()
- .filter_entry(repo::base_dir_filter)
- .collect::<Result<Vec<DirEntry>, walkdir::Error>>()
- .unwrap()
- .into_par_iter()
- .for_each(|entry| {
- let path = entry.path();
- if path.is_dir() {
- return;
- }
-
- let mut file = File::open(path).unwrap();
- let mut content = String::new();
- file.read_to_string(&mut content).unwrap();
-
- let start = Instant::now();
- let (krate, elapsed) = match syn::parse_file(&content) {
- Ok(krate) => (krate, start.elapsed()),
- Err(msg) => {
- errorf!("=== {}: syn failed to parse\n{:?}\n", path.display(), msg);
- let prev_failed = failed.fetch_add(1, Ordering::SeqCst);
- if prev_failed + 1 >= abort_after {
- process::exit(1);
- }
- return;
- }
- };
- let back = quote!(#krate).to_string();
-
- let equal = panic::catch_unwind(|| {
- syntax::with_globals(Edition::Edition2018, || {
- let sess = ParseSess::new(FilePathMapping::empty());
- let before = match libsyntax_parse(content, &sess) {
- Ok(before) => before,
- Err(mut diagnostic) => {
- diagnostic.cancel();
- if diagnostic
- .message()
- .starts_with("file not found for module")
- {
- errorf!("=== {}: ignore\n", path.display());
- } else {
- errorf!(
- "=== {}: ignore - libsyntax failed to parse original content: {}\n",
- path.display(),
- diagnostic.message()
- );
- }
- return true;
- }
- };
- let after = match libsyntax_parse(back, &sess) {
- Ok(after) => after,
- Err(mut diagnostic) => {
- errorf!("=== {}: libsyntax failed to parse", path.display());
- diagnostic.emit();
- return false;
- }
- };
-
- if SpanlessEq::eq(&before, &after) {
- errorf!(
- "=== {}: pass in {}ms\n",
- path.display(),
- elapsed.as_secs() * 1000
- + u64::from(elapsed.subsec_nanos()) / 1_000_000
- );
- true
- } else {
- errorf!(
- "=== {}: FAIL\nbefore: {:#?}\nafter: {:#?}\n",
- path.display(),
- before,
- after,
- );
- false
- }
- })
- });
- match equal {
- Err(_) => errorf!("=== {}: ignoring libsyntax panic\n", path.display()),
- Ok(true) => {}
- Ok(false) => {
- let prev_failed = failed.fetch_add(1, Ordering::SeqCst);
- if prev_failed + 1 >= abort_after {
- process::exit(1);
- }
- }
- }
- });
-
- let failed = failed.load(Ordering::SeqCst);
- if failed > 0 {
- panic!("{} failures", failed);
- }
-}
-
-fn libsyntax_parse(content: String, sess: &ParseSess) -> PResult<ast::Crate> {
- let name = FileName::Custom("test_round_trip".to_string());
- parse::parse_crate_from_source_str(name, content, sess)
-}
diff --git a/syn/tests/test_should_parse.rs b/syn/tests/test_should_parse.rs
deleted file mode 100644
index d4f7ac3..0000000
--- a/syn/tests/test_should_parse.rs
+++ /dev/null
@@ -1,47 +0,0 @@
-mod features;
-
-macro_rules! should_parse {
- ($name:ident, { $($in:tt)* }) => {
- #[test]
- fn $name() {
- // Make sure we can parse the file!
- syn::parse_file(stringify!($($in)*)).unwrap();
- }
- }
-}
-
-should_parse!(generic_associated_type, {
- impl Foo {
- type Item = &'a i32;
- fn foo<'a>(&'a self) -> Self::Item<'a> {}
- }
-});
-
-#[rustfmt::skip]
-should_parse!(const_generics_use, {
- type X = Foo<5>;
- type Y = Foo<"foo">;
- type Z = Foo<X>;
- type W = Foo<{ X + 10 }>;
-});
-
-should_parse!(trailing_plus_type, {
- type A = Box<Foo>;
- type A = Box<Foo + 'a>;
- type A = Box<'a + Foo>;
-});
-
-should_parse!(generic_associated_type_where, {
- trait Foo {
- type Item;
- fn foo<T>(&self, t: T) -> Self::Item<T>;
- }
-});
-
-should_parse!(match_with_block_expr, {
- fn main() {
- match false {
- _ => {}.a(),
- }
- }
-});
diff --git a/syn/tests/test_size.rs b/syn/tests/test_size.rs
deleted file mode 100644
index 386d4df..0000000
--- a/syn/tests/test_size.rs
+++ /dev/null
@@ -1,31 +0,0 @@
-#![cfg(target_pointer_width = "64")]
-
-mod features;
-
-use std::mem;
-use syn::*;
-
-#[test]
-fn test_expr_size() {
- assert_eq!(mem::size_of::<Expr>(), 280);
-}
-
-#[test]
-fn test_item_size() {
- assert_eq!(mem::size_of::<Item>(), 344);
-}
-
-#[test]
-fn test_type_size() {
- assert_eq!(mem::size_of::<Type>(), 304);
-}
-
-#[test]
-fn test_pat_size() {
- assert_eq!(mem::size_of::<Pat>(), 144);
-}
-
-#[test]
-fn test_lit_size() {
- assert_eq!(mem::size_of::<Lit>(), 40);
-}
diff --git a/syn/tests/test_token_trees.rs b/syn/tests/test_token_trees.rs
deleted file mode 100644
index 5d7610b..0000000
--- a/syn/tests/test_token_trees.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-mod features;
-
-#[macro_use]
-mod macros;
-
-use proc_macro2::TokenStream;
-use quote::quote;
-use syn::Lit;
-
-#[test]
-fn test_struct() {
- let input = "
- #[derive(Debug, Clone)]
- pub struct Item {
- pub ident: Ident,
- pub attrs: Vec<Attribute>,
- }
- ";
-
- snapshot!(input as TokenStream, @"`# [ derive ( Debug , Clone ) ] pub struct Item { pub ident : Ident , pub attrs : Vec < Attribute >, }`");
-}
-
-#[test]
-fn test_literal_mangling() {
- let code = "0_4";
- let parsed: Lit = syn::parse_str(code).unwrap();
- assert_eq!(code, quote!(#parsed).to_string());
-}
diff --git a/syn/tests/test_visibility.rs b/syn/tests/test_visibility.rs
deleted file mode 100644
index 21c49c9..0000000
--- a/syn/tests/test_visibility.rs
+++ /dev/null
@@ -1,99 +0,0 @@
-mod features;
-
-use proc_macro2::TokenStream;
-use syn::parse::{Parse, ParseStream};
-use syn::{Result, Visibility};
-
-#[derive(Debug)]
-struct VisRest {
- vis: Visibility,
- rest: TokenStream,
-}
-
-impl Parse for VisRest {
- fn parse(input: ParseStream) -> Result<Self> {
- Ok(VisRest {
- vis: input.parse()?,
- rest: input.parse()?,
- })
- }
-}
-
-macro_rules! assert_vis_parse {
- ($input:expr, Ok($p:pat)) => {
- assert_vis_parse!($input, Ok($p) + "");
- };
-
- ($input:expr, Ok($p:pat) + $rest:expr) => {
- let expected = $rest.parse::<TokenStream>().unwrap();
- let parse: VisRest = syn::parse_str($input).unwrap();
-
- match parse.vis {
- $p => {}
- _ => panic!("Expected {}, got {:?}", stringify!($p), parse.vis),
- }
-
- // NOTE: Round-trips through `to_string` to avoid potential whitespace
- // diffs.
- assert_eq!(parse.rest.to_string(), expected.to_string());
- };
-
- ($input:expr, Err) => {
- syn::parse2::<VisRest>($input.parse().unwrap()).unwrap_err();
- };
-}
-
-#[test]
-fn test_pub() {
- assert_vis_parse!("pub", Ok(Visibility::Public(_)));
-}
-
-#[test]
-fn test_crate() {
- assert_vis_parse!("crate", Ok(Visibility::Crate(_)));
-}
-
-#[test]
-fn test_inherited() {
- assert_vis_parse!("", Ok(Visibility::Inherited));
-}
-
-#[test]
-fn test_in() {
- assert_vis_parse!("pub(in foo::bar)", Ok(Visibility::Restricted(_)));
-}
-
-#[test]
-fn test_pub_crate() {
- assert_vis_parse!("pub(crate)", Ok(Visibility::Restricted(_)));
-}
-
-#[test]
-fn test_pub_self() {
- assert_vis_parse!("pub(self)", Ok(Visibility::Restricted(_)));
-}
-
-#[test]
-fn test_pub_super() {
- assert_vis_parse!("pub(super)", Ok(Visibility::Restricted(_)));
-}
-
-#[test]
-fn test_missing_in() {
- assert_vis_parse!("pub(foo::bar)", Ok(Visibility::Public(_)) + "(foo::bar)");
-}
-
-#[test]
-fn test_missing_in_path() {
- assert_vis_parse!("pub(in)", Err);
-}
-
-#[test]
-fn test_crate_path() {
- assert_vis_parse!("pub(crate::A, crate::B)", Ok(Visibility::Public(_)) + "(crate::A, crate::B)");
-}
-
-#[test]
-fn test_junk_after_in() {
- assert_vis_parse!("pub(in some::path @@garbage)", Err);
-}
diff --git a/syn/tests/zzz_stable.rs b/syn/tests/zzz_stable.rs
deleted file mode 100644
index 6c768f2..0000000
--- a/syn/tests/zzz_stable.rs
+++ /dev/null
@@ -1,33 +0,0 @@
-#![cfg(syn_disable_nightly_tests)]
-
-use std::io::{self, Write};
-use termcolor::{Color, ColorChoice, ColorSpec, StandardStream, WriteColor};
-
-const MSG: &str = "\
-‖
-‖ WARNING:
-‖ This is not a nightly compiler so not all tests were able to
-‖ run. Syn includes tests that compare Syn's parser against the
-‖ compiler's parser, which requires access to unstable libsyntax
-‖ data structures and a nightly compiler.
-‖
-";
-
-#[test]
-fn notice() -> io::Result<()> {
- let header = "WARNING";
- let index_of_header = MSG.find(header).unwrap();
- let before = &MSG[..index_of_header];
- let after = &MSG[index_of_header + header.len()..];
-
- let mut stderr = StandardStream::stderr(ColorChoice::Auto);
- stderr.set_color(ColorSpec::new().set_fg(Some(Color::Yellow)))?;
- write!(&mut stderr, "{}", before)?;
- stderr.set_color(ColorSpec::new().set_bold(true).set_fg(Some(Color::Yellow)))?;
- write!(&mut stderr, "{}", header)?;
- stderr.set_color(ColorSpec::new().set_fg(Some(Color::Yellow)))?;
- write!(&mut stderr, "{}", after)?;
- stderr.reset()?;
-
- Ok(())
-}