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,
+       ⋮                                                            },
+       ⋮                                                        ],
        ⋮                                                    },
-       ⋮                                                ),
-       ⋮                                            ],
-       ⋮                                        },
-       ⋮                                    ),
+       ⋮                                                },
+       ⋮                                            ),
+       ⋮                                        ],
+       ⋮                                    },
        ⋮                                },
        ⋮                            ],
        ⋮                        },