commit:     9e7637d22b0ddb1b701073dae2a7a47c0d6ec74b
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  2 17:52:36 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Mon Oct  2 18:38:53 2023 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=9e7637d2

SelfAssignment: fix with new tree-sitter-bash

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcheck/checks/codingstyle.py                                 | 7 +++++--
 .../repos/standalone/MetadataVarCheck/SelfAssignment/expected.json | 2 ++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/pkgcheck/checks/codingstyle.py 
b/src/pkgcheck/checks/codingstyle.py
index 317841bc..20d668f8 100644
--- a/src/pkgcheck/checks/codingstyle.py
+++ b/src/pkgcheck/checks/codingstyle.py
@@ -682,12 +682,15 @@ class MetadataVarCheck(Check):
         for static_str, replacement in static_urls.items():
             yield StaticSrcUri(static_str, replacement=replacement, pkg=pkg)
 
+    def canonicalize_assign(self, value: str):
+        return value.strip("\"'").replace("\n", "").replace("\t", " ")
+
     def feed(self, pkg):
         keywords_lines = set()
         for node in pkg.global_query(bash.var_assign_query):
             name = pkg.node_str(node.child_by_field_name("name"))
             value_node = node.child_by_field_name("value")
-            value_str = pkg.node_str(value_node).strip("\"'") if value_node 
else ""
+            value_str = self.canonicalize_assign(pkg.node_str(value_node)) if 
value_node else ""
             if name in pkg.eapi.eclass_keys:
                 if not value_str:
                     lineno, _ = node.start_point
@@ -696,7 +699,7 @@ class MetadataVarCheck(Check):
                     for var_node, _ in bash.var_query.captures(value_node):
                         if (
                             pkg.node_str(var_node) == name
-                            and pkg.node_str(var_node.parent) == value_str
+                            and 
self.canonicalize_assign(pkg.node_str(var_node.parent)) == value_str
                             and var_node.next_named_sibling is None
                         ):
                             node_str = pkg.node_str(node).replace("\n", 
"").replace("\t", " ")

diff --git 
a/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json 
b/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json
index 314daa7f..e7717502 100644
--- 
a/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json
+++ 
b/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json
@@ -2,4 +2,6 @@
 {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": 
"SelfAssignment", "version": "0", "line": "RDEPEND=\"$RDEPEND\"", "lineno": 7}
 {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": 
"SelfAssignment", "version": "0", "line": "RDEPEND=${RDEPEND}", "lineno": 8}
 {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": 
"SelfAssignment", "version": "0", "line": "RDEPEND=$RDEPEND", "lineno": 9}
+{"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": 
"SelfAssignment", "version": "0", "line": "RDEPEND=\"${RDEPEND}\"", "lineno": 
10}
 {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": 
"SelfAssignment", "version": "0", "line": "RDEPEND=\" ${RDEPEND}\"", "lineno": 
12}
+{"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": 
"SelfAssignment", "version": "0", "line": "RDEPEND=\" ${RDEPEND}\"", "lineno": 
14}

Reply via email to