summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorWander Lairson Costa <wander@redhat.com>2026-02-23 19:18:01 +0300
committerGabriele Monaco <gmonaco@redhat.com>2026-04-01 11:16:20 +0300
commit5d98f7f5b96c4abc9325c0d851b7d287d24aee93 (patch)
treea6009215f0240aec13eb3fc8d4deffc197b33921 /tools
parent957dcbf0b663385dddb3eaa5cf5de5109255696f (diff)
downloadlinux-5d98f7f5b96c4abc9325c0d851b7d287d24aee93.tar.xz
rv/rvgen: fix unbound loop variable warning
Pyright static analysis reports a "possibly unbound variable" warning for the loop variable `i` in the `abbreviate_atoms` function. The variable is accessed after the inner loop terminates to slice the atom string. While the loop logic currently ensures execution, the analyzer flags the reliance on the loop variable persisting outside its scope. Refactor the prefix length calculation into a nested `find_share_length` helper function. This encapsulates the search logic and uses explicit return statements, ensuring the length value is strictly defined. This satisfies the type checker and improves code readability without altering the runtime behavior. Signed-off-by: Wander Lairson Costa <wander@redhat.com> Reviewed-by: Gabriele Monaco <gmonaco@redhat.com> Link: https://lore.kernel.org/r/20260223162407.147003-19-wander@redhat.com Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/verification/rvgen/rvgen/ltl2k.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/tools/verification/rvgen/rvgen/ltl2k.py b/tools/verification/rvgen/rvgen/ltl2k.py
index b6300c38154d..b8ac584fe250 100644
--- a/tools/verification/rvgen/rvgen/ltl2k.py
+++ b/tools/verification/rvgen/rvgen/ltl2k.py
@@ -44,13 +44,17 @@ def abbreviate_atoms(atoms: list[str]) -> list[str]:
skip = ["is", "by", "or", "and"]
return '_'.join([x[:2] for x in s.lower().split('_') if x not in skip])
- abbrs = []
- for atom in atoms:
+ def find_share_length(atom: str) -> int:
for i in range(len(atom), -1, -1):
if sum(a.startswith(atom[:i]) for a in atoms) > 1:
- break
- share = atom[:i]
- unique = atom[i:]
+ return i
+ return 0
+
+ abbrs = []
+ for atom in atoms:
+ share_len = find_share_length(atom)
+ share = atom[:share_len]
+ unique = atom[share_len:]
abbrs.append((shorten(share) + shorten(unique)))
return abbrs