From 8615740588d17d755ce3e460ea42749a68da4be3 Mon Sep 17 00:00:00 2001 From: Swapnil <78632212+swapnilpaliwal-sd@users.noreply.github.com> Date: Sun, 27 Sep 2026 19:44:49 -0700 Subject: [PATCH 1/3] java: the oracle-agreement golden counts the case added by #1563 #1563 added a Java case that both ground-truth oracles agree on, but left graph/test/java/expected/oracle-agreement.txt at 45 cases, so the engine (java) job fails its oracle-agreement check on 0.1.3. CI measured 46 cases compared, 46 agreeing, 0 disagreements; this records that. Refs #1401. --- graph/test/java/expected/oracle-agreement.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graph/test/java/expected/oracle-agreement.txt b/graph/test/java/expected/oracle-agreement.txt index a204958ea..22a372c44 100644 --- a/graph/test/java/expected/oracle-agreement.txt +++ b/graph/test/java/expected/oracle-agreement.txt @@ -1,4 +1,4 @@ -cases compared 45 agreeing 45 +cases compared 46 agreeing 46 CONSTRUCTOR-RULE disagreements: 0 cases, 0 rows OTHER disagreements: 0 rows naming no method: 0 From 33cc5e4b7124c0c40ab0962e30d45f6b185f27a5 Mon Sep 17 00:00:00 2001 From: Swapnil <78632212+swapnilpaliwal-sd@users.noreply.github.com> Date: Sun, 27 Sep 2026 19:56:52 -0700 Subject: [PATCH 2/3] java: record the three var shapes case 61 leaves untyped as known-missing The bytecode oracle in CI finds three edges case 61-var-local-type does not produce: a var element of an enhanced for loop, a try-with-resources var, and var lambda parameters. Before #1401 each was a wrong external:var edge; now the receiver is an honest unknown. Record them as accepted gaps so a new miss still fails and a fixed one reports NOW-FIXED. Refs #1401. --- .../java/expected/61-var-local-type.known-missing | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 graph/test/java/expected/61-var-local-type.known-missing diff --git a/graph/test/java/expected/61-var-local-type.known-missing b/graph/test/java/expected/61-var-local-type.known-missing new file mode 100644 index 000000000..996b5ec5e --- /dev/null +++ b/graph/test/java/expected/61-var-local-type.known-missing @@ -0,0 +1,13 @@ +# Accepted gap, measured by the bytecode oracle in CI: a `var` local whose type comes from something +# other than its initializer expression is left a declared unknown. Before #1401 each of these was a +# wrong `external:var.` edge; now the receiver is honestly untyped. Three shapes: +# - the element variable of an enhanced for loop (`for (var w : widgets)`): its type is the +# iterable's element type; +# - a try-with-resources variable (`try (var w = open())` where open() is not typed client-side); +# - `var` lambda parameters (`(var w) -> w.paint()`): the type comes from the target functional +# interface. +# Follow-up: type `var` in these three shapes. It cannot rot: when one starts resolving, this line +# reports NOW-FIXED and the case fails until it is removed. +probe.VarLocals#fromEnhancedFor -> probe.Widget#paint() +probe.VarLocals#fromResource -> probe.Widget#close() +probe.VarLocals#lambdaParams -> probe.Widget#paint() From 6ace6300296b12dad4c88356223b4dfb90d6deea Mon Sep 17 00:00:00 2001 From: Swapnil <78632212+swapnilpaliwal-sd@users.noreply.github.com> Date: Sun, 27 Sep 2026 20:12:25 -0700 Subject: [PATCH 3/3] java: case 61 gets its oracle golden CI's second run on this branch failed 61-var-local-type with 'no oracle golden'. The golden is oracle_diff.py's report, and CI measured every value in it: oracle=20 engine=17 agree=17, the three known-missing var shapes, no extra edge. Refs #1401. --- graph/test/java/expected/61-var-local-type.oracle | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 graph/test/java/expected/61-var-local-type.oracle diff --git a/graph/test/java/expected/61-var-local-type.oracle b/graph/test/java/expected/61-var-local-type.oracle new file mode 100644 index 000000000..b29608363 --- /dev/null +++ b/graph/test/java/expected/61-var-local-type.oracle @@ -0,0 +1,4 @@ +oracle=20 engine=17 agree=17 missing=3 (known 3, NEW 0) extra=0 + known-missing probe.VarLocals#fromEnhancedFor -> probe.Widget#paint() + known-missing probe.VarLocals#fromResource -> probe.Widget#close() + known-missing probe.VarLocals#lambdaParams -> probe.Widget#paint()