Also PathArgument's naming convention
diff --git a/codegen/src/debug.rs b/codegen/src/debug.rs
index 0cda534..92f5dc4 100644
--- a/codegen/src/debug.rs
+++ b/codegen/src/debug.rs
@@ -120,13 +120,10 @@
if fields.len() != 1 {
return None;
}
- let mut outer = outer;
- if outer == "Visibility" {
- outer = "Vis";
- }
+ const WHITELIST: &[&str] = &["PathArguments", "Visibility"];
match &fields[0] {
- Type::Syn(ty) if outer.to_owned() + inner == *ty => Some(ty),
- _ => None
+ Type::Syn(ty) if WHITELIST.contains(&outer) || outer.to_owned() + inner == *ty => Some(ty),
+ _ => None,
}
}
diff --git a/tests/debug/gen.rs b/tests/debug/gen.rs
index 05a5f70..5cddc8f 100644
--- a/tests/debug/gen.rs
+++ b/tests/debug/gen.rs
@@ -4597,14 +4597,31 @@
let _val = &self.value;
match _val {
syn::PathArguments::None => formatter.write_str("None"),
- syn::PathArguments::AngleBracketed(_v0) => {
- let mut formatter = formatter.debug_tuple("AngleBracketed");
- formatter.field(Lite(_v0));
+ 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(_v0) => {
- let mut formatter = formatter.debug_tuple("Parenthesized");
- formatter.field(Lite(_v0));
+ 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()
}
}
diff --git a/tests/test_derive_input.rs b/tests/test_derive_input.rs
index ef7d2c1..124cfde 100644
--- a/tests/test_derive_input.rs
+++ b/tests/test_derive_input.rs
@@ -85,24 +85,22 @@
⋮ segments: [
⋮ PathSegment {
⋮ ident: "Vec",
- ⋮ arguments: AngleBracketed(
- ⋮ AngleBracketedGenericArguments {
- ⋮ args: [
- ⋮ Type(
- ⋮ Type::Path {
- ⋮ path: Path {
- ⋮ segments: [
- ⋮ PathSegment {
- ⋮ ident: "Attribute",
- ⋮ arguments: None,
- ⋮ },
- ⋮ ],
- ⋮ },
+ ⋮ arguments: PathArguments::AngleBracketed {
+ ⋮ args: [
+ ⋮ Type(
+ ⋮ Type::Path {
+ ⋮ path: Path {
+ ⋮ segments: [
+ ⋮ PathSegment {
+ ⋮ ident: "Attribute",
+ ⋮ arguments: None,
+ ⋮ },
+ ⋮ ],
⋮ },
- ⋮ ),
- ⋮ ],
- ⋮ },
- ⋮ ),
+ ⋮ },
+ ⋮ ),
+ ⋮ ],
+ ⋮ },
⋮ },
⋮ ],
⋮ },