From 4a58a0158a5e717f3d3a741c61cd4c3876e6de02 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 11 Nov 2025 15:28:45 +0100 Subject: [PATCH] Java: Reinstate useless null check results for fields that are no longer tracked as SSA variables. --- java/ql/lib/semmle/code/java/dataflow/NullGuards.qll | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll index b165d1516d6..709bb1e3d47 100644 --- a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll @@ -105,6 +105,13 @@ Expr clearlyNotNullExpr(Expr reason) { result = v.getARead() and not result = baseNotNullExpr() ) + or + exists(Field f | + result = f.getAnAccess() and + f.isFinal() and + f.getInitializer() = clearlyNotNullExpr(reason) and + not result = baseNotNullExpr() + ) } /** Holds if `v` is an SSA variable that is provably not `null`. */