From 426bbfaecccf729b0cbcdac6533d227cfaf9700b Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 24 Sep 2026 11:09:19 +0100 Subject: [PATCH 1/2] Add test with spurious result for go/whitespace-contradicts-precedence --- .../WhitespaceContradictsPrecedence/ParenthesizedOperands.go | 4 ++++ .../WhitespaceContradictsPrecedence.expected | 1 + 2 files changed, 5 insertions(+) diff --git a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go index 1b9d472a6237..332ebc6b552d 100644 --- a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go +++ b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go @@ -5,3 +5,7 @@ package main func weightedMeanGood(a, b float64, countA, countB, total int) float64 { return ((a * float64(countA)) + (b * float64(countB))) / float64(total) } + +func parenthesizedGood(a, b, c int) int { + return (a ^ b)&c // $ SPURIOUS: Alert +} diff --git a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected index c9c91c4d3979..a9b5626b77f3 100644 --- a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected +++ b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected @@ -1,2 +1,3 @@ +| ParenthesizedOperands.go:10:9:10:17 | ...&... | ^ is evaluated before &, but whitespace suggests the opposite. | | WhitespaceContradictsPrecedence.go:6:9:6:18 | ...<<... | & is evaluated before <<, but whitespace suggests the opposite. | | main.go:14:9:14:16 | ...+... | >> is evaluated before +, but whitespace suggests the opposite. | From fe566f02ee0ee6198cd39a3f0f9572d9f5db61a5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 24 Sep 2026 11:13:53 +0100 Subject: [PATCH 2/2] Fix test - ignore parenthesized operands --- go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql | 1 + .../WhitespaceContradictsPrecedence/ParenthesizedOperands.go | 2 +- .../WhitespaceContradictsPrecedence.expected | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql b/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql index 83ce8ce7eead..77706822f1fb 100644 --- a/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql +++ b/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql @@ -67,6 +67,7 @@ class HarmlessNestedExpr extends BinaryExpr { */ predicate interestingNesting(BinaryExpr inner, BinaryExpr outer) { inner = outer.getAChildExpr() and + not isParenthesized(inner, _) and not inner instanceof AssocNestedExpr and not inner instanceof HarmlessNestedExpr } diff --git a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go index 332ebc6b552d..07882d38b0a4 100644 --- a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go +++ b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/ParenthesizedOperands.go @@ -7,5 +7,5 @@ func weightedMeanGood(a, b float64, countA, countB, total int) float64 { } func parenthesizedGood(a, b, c int) int { - return (a ^ b)&c // $ SPURIOUS: Alert + return (a ^ b)&c } diff --git a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected index a9b5626b77f3..c9c91c4d3979 100644 --- a/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected +++ b/go/ql/test/query-tests/InconsistentCode/WhitespaceContradictsPrecedence/WhitespaceContradictsPrecedence.expected @@ -1,3 +1,2 @@ -| ParenthesizedOperands.go:10:9:10:17 | ...&... | ^ is evaluated before &, but whitespace suggests the opposite. | | WhitespaceContradictsPrecedence.go:6:9:6:18 | ...<<... | & is evaluated before <<, but whitespace suggests the opposite. | | main.go:14:9:14:16 | ...+... | >> is evaluated before +, but whitespace suggests the opposite. |