From 79f5edacb00d76f5a08a40d4ac5bc65de1fb07fb Mon Sep 17 00:00:00 2001 From: aviac Date: Fri, 10 Jan 2025 16:52:24 +0100 Subject: [PATCH] fix: fix inherit from tests --- lib/src/lints/manual_inherit.rs | 2 +- lib/src/lints/manual_inherit_from.rs | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/src/lints/manual_inherit.rs b/lib/src/lints/manual_inherit.rs index d31d7cc..ae9c783 100644 --- a/lib/src/lints/manual_inherit.rs +++ b/lib/src/lints/manual_inherit.rs @@ -48,7 +48,7 @@ impl Rule for ManualInherit { if let key_path = key_value_stmt.attrpath()?; if let Some(key_node) = key_path.attrs().next(); // ensure that path has exactly one component - if key_path.attrs().next().is_none(); + if key_path.attrs().count() == 1; if let Some(key) = Ident::cast(key_node.syntax().clone()); if let Some(value_node) = key_value_stmt.value(); diff --git a/lib/src/lints/manual_inherit_from.rs b/lib/src/lints/manual_inherit_from.rs index 61724f8..4a54d32 100644 --- a/lib/src/lints/manual_inherit_from.rs +++ b/lib/src/lints/manual_inherit_from.rs @@ -42,18 +42,19 @@ struct ManualInheritFrom; impl Rule for ManualInheritFrom { fn validate(&self, node: &SyntaxElement, _sess: &SessionInfo) -> Option { + println!("==="); if_chain! { if let NodeOrToken::Node(node) = node; if let Some(key_value_stmt) = AttrpathValue::cast(node.clone()); - if let mut key_path = key_value_stmt.attrpath()?.attrs(); - if let Some(key_node) = key_path.next(); + if let key_path = key_value_stmt.attrpath()?; + if let Some(key_node) = key_path.attrs().next(); // ensure that path has exactly one component - if key_path.next().is_none(); + if key_path.attrs().count() == 1; if let Some(key) = Ident::cast(key_node.syntax().clone()); if let Some(value_node) = key_value_stmt.value(); if let Some(value) = Select::cast(value_node.syntax().clone()); - if let Some(index_node) = value.expr(); + if let Some(index_node) = value.attrpath().and_then(|attrs| attrs.attrs().next()); if let Some(index) = Ident::cast(index_node.syntax().clone()); if key.to_string() == index.to_string();