**rust-analyzer version**: Introduced in https://github.com/rust-lang/rust-analyzer/pull/16789 **rustc version**: 1.76 **code snippet to reproduce**: ```rust #[derive(serde::Deserialize) pub struct Example { #[cfg_attr(feature = "serde", cfg_attr(feature = "with-defaults", serde(default)))] item: u8 } ``` The cfg stripping code only goes one deep. So if the inner attribute for cfg_attr is an cfg_attr that is passed along. <!-- TRIAGEBOT_START --> <!-- TRIAGEBOT_ASSIGN_START --> <!-- TRIAGEBOT_ASSIGN_DATA_START$${"user":"wyatt-herkamp"}$$TRIAGEBOT_ASSIGN_DATA_END --> <!-- TRIAGEBOT_ASSIGN_END --> <!-- TRIAGEBOT_END -->