From: Gabriele Monaco <gmonaco@redhat.com>
To: Wander Lairson Costa <wander@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Nam Cao <namcao@linutronix.de>,
"open list:RUNTIME VERIFICATION (RV)"
<linux-trace-kernel@vger.kernel.org>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 18/20] rv/rvgen: fix unbound loop variable warning
Date: Thu, 05 Feb 2026 12:38:54 +0100 [thread overview]
Message-ID: <495e8eaa248302b09e5049d9ec90b12f2c159016.camel@redhat.com> (raw)
In-Reply-To: <20260204144914.104028-19-wander@redhat.com>
On Wed, 2026-02-04 at 11:42 -0300, Wander Lairson Costa wrote:
> 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>
Looks good, that's probably the pythonic way then!
Reviewed-by: Gabriele Monaco <gmonaco@redhat.com>
> ---
> tools/verification/rvgen/rvgen/ltl2k.py | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/tools/verification/rvgen/rvgen/ltl2k.py
> b/tools/verification/rvgen/rvgen/ltl2k.py
> index fa9ea6d597095..2c564cc937235 100644
> --- a/tools/verification/rvgen/rvgen/ltl2k.py
> +++ b/tools/verification/rvgen/rvgen/ltl2k.py
> @@ -43,13 +43,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
>
next prev parent reply other threads:[~2026-02-05 11:38 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-04 14:42 [PATCH v2 00/20] rv/rvgen: Robustness, modernization, and fixes Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 01/20] rv/rvgen: introduce AutomataError exception class Wander Lairson Costa
2026-02-05 6:50 ` Gabriele Monaco
2026-02-05 19:53 ` Wander Lairson Costa
2026-02-05 12:08 ` Gabriele Monaco
2026-02-05 19:51 ` Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 02/20] rv/rvgen: remove bare except clauses in generator Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 03/20] rv/rvgen: replace % string formatting with f-strings Wander Lairson Costa
2026-02-05 11:37 ` Gabriele Monaco
2026-02-05 19:54 ` Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 04/20] rv/rvgen: replace __len__() calls with len() Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 05/20] rv/rvgen: remove unnecessary semicolons Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 06/20] rv/rvgen: use context managers for file operations Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 07/20] rv/rvgen: fix typos in automata and generator docstring and comments Wander Lairson Costa
2026-02-05 7:03 ` Gabriele Monaco
2026-02-05 20:04 ` Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 08/20] rv/rvgen: fix PEP 8 whitespace violations Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 09/20] rv/rvgen: fix DOT file validation logic error Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 10/20] rv/rvgen: use class constant for init marker Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 11/20] rv/rvgen: refactor automata.py to use iterator-based parsing Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 12/20] rv/rvgen: remove unused sys import from dot2c Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 13/20] rv/rvgen: remove unused __get_main_name method Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 14/20] rv/rvgen: make monitor arguments required in rvgen Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 15/20] rv/rvgen: fix isinstance check in Variable.expand() Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 16/20] rv/rvgen: extract node marker string to class constant Wander Lairson Costa
2026-02-05 11:47 ` Gabriele Monaco
2026-02-04 14:42 ` [PATCH v2 17/20] rv/rvgen: enforce presence of initial state Wander Lairson Costa
2026-02-05 11:44 ` Gabriele Monaco
2026-02-04 14:42 ` [PATCH v2 18/20] rv/rvgen: fix unbound loop variable warning Wander Lairson Costa
2026-02-05 11:38 ` Gabriele Monaco [this message]
2026-02-04 14:42 ` [PATCH v2 19/20] rv/rvgen: fix _fill_states() return type annotation Wander Lairson Costa
2026-02-05 7:24 ` Gabriele Monaco
2026-02-05 20:03 ` Wander Lairson Costa
2026-02-04 14:42 ` [PATCH v2 20/20] rv/rvgen: add missing return type annotations Wander Lairson Costa
2026-02-05 7:24 ` Gabriele Monaco
2026-02-05 20:12 ` Wander Lairson Costa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=495e8eaa248302b09e5049d9ec90b12f2c159016.camel@redhat.com \
--to=gmonaco@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=namcao@linutronix.de \
--cc=rostedt@goodmis.org \
--cc=wander@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®