Context
Surfaced during P-DO migration (workflow-plugin-digitalocean PR #61): the AST analyzer AssertDiffSetsNeedsReplaceForForceNew flagged VolumeDriver.Diff as a contract violation. The driver actually DOES correctly assign NeedsReplace from a local needsReplace accumulator at line 232 — the analyzer's pattern-matching missed the indirect assignment.
Requested
Tighten the analyzer to recognize the local-accumulator pattern (needsReplace := false; ... needsReplace = true; ... result.NeedsReplace = needsReplace).
Reference
Context
Surfaced during P-DO migration (workflow-plugin-digitalocean PR #61): the AST analyzer
AssertDiffSetsNeedsReplaceForForceNewflaggedVolumeDriver.Diffas a contract violation. The driver actually DOES correctly assignNeedsReplacefrom a localneedsReplaceaccumulator at line 232 — the analyzer's pattern-matching missed the indirect assignment.Requested
Tighten the analyzer to recognize the local-accumulator pattern (
needsReplace := false; ... needsReplace = true; ... result.NeedsReplace = needsReplace).Reference