You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@grails.apache.org by GitBox <gi...@apache.org> on 2026/10/02 14:45:16 UTC
[GH] (grails-core/fix/gorm-query-safety-constant-text): Workflow run "Code Analysis" is working again!
The GitHub Actions job "Code Analysis" on grails-core.git/fix/gorm-query-safety-constant-text has succeeded.
Run started by GitHub user matrei (triggered by matrei).
Head commit for run:
b570363fb812f2017a85840af1c64a1432f4eabf / Mattias Reichel <ma...@gmail.com>
Close the constant-text gaps in the query safety check
Constant-text tracking assumed every assignment to a local was a
statement walked in the order it runs, and tracked locals by name. A
local holding a value could therefore pass as constant text when it was
assigned by multiple assignment, inside a ternary, an && or || operand,
a method argument or a do/while condition, or inside a closure called
later, and a loop variable or closure parameter could inherit the
status of an earlier local with the same name.
Tracking is now keyed by the declaration each reference resolves to. A
pre-scan of each method finds the assignments the walk cannot place in
order; a local assigned that way, or declared outside a closure and
read inside it, is constant text only if every assignment to it in the
method is constant text.
A loop or closure body that assigns no local declared outside it is
walked once instead of being re-walked to a fixpoint, and a nested body
that has already settled silently is not walked again, so compile time
no longer grows exponentially with nesting depth.
Constructors, field initialisers and object initialisers are analysed
with a fresh state like methods, so a suppression on a constructor now
takes effect. The error message no longer recommends a StringBuilder,
which the check cannot follow, and the guide says which constructs are
not reported.
Report URL: https://github.com/apache/grails-core/actions/runs/37018352967
With regards,
GitHub Actions via GitBox