Skip to content

Windows: Java method gets no Parameter nodes in test_parameter_nodes_languages_end_to_end #2160

Closed

Description

@vitali87

Deterministic on Windows, passes on macOS. Found on PR #1978, whose diff (cross-service flow) touches no Java code.

Failing (run 35789039349, head 2aa373c, rebased on main at ~21:30 on 2026-09-22), in both Unit Tests (windows-latest, py3.12) and (windows-latest, py3.13):

  • test_parameter_nodes_languages_end_to_end.py::test_every_language_emits_its_declared_parameters
  • test_parameter_nodes_languages_end_to_end.py::test_of_type_resolves_the_declared_type_in_every_language
{'proj.java.App.App.build(String,Widget)': []} != {'proj.java.App.App.build(String,Widget)': [('name', 0, 'String', False, False), ('w', 1, 'Widget', False, False), ('xs', 2, 'int...', True, False)]}

So the Java method void build(String name, Widget w, int... xs) gets no parameters on Windows; the other languages match.

Checked:

  • On macOS, the same file on the same tree passes (3 passed).
  • It is not CRLF: rewriting the fixture with \r\n line endings still passes on macOS.
  • The last green main CI run is b50b363 (20:50). There are 52 commits since then, including fix(java): read the varargs element type of every shape #1976 (Java varargs element types, parsers/java/utils.py and variable_analyzer.py), and current main has not finished a Windows run yet.

So this is probably a main regression that every PR rebased past b50b363 will hit on Windows; #1976 is the first suspect but that is unproven.

Activity

  1. added
    bugSomething isn't working correctly
    on Sep 22, 2026
  2. vitali87 commented on Sep 22, 2026

    @vitali87
    OwnerAuthor

    Correction: #1976 is not the cause. Neither PR involved contains it (git merge-base --is-ancestor ba4e6646 is false for both heads).

  3. vitali87 commented on Sep 22, 2026

    @vitali87
    OwnerAuthor

    Retracting my suspect analysis above. pull_request CI tests the PR merged into current main, not the head, so checking which commits the two heads contain proved nothing. Root cause (found by 1936): a semantic conflict between #1965's end-to-end test, which expects build(String,Widget), and #1976, which correctly adds the varargs to the Java signature (build(String,Widget,int...)). Main is red on every OS until the expectation is updated; 1936 is fixing it on fix/2160-java-varargs-qn.

  4. vitali87 commented on Sep 24, 2026

    @vitali87
    OwnerAuthor

    Fixed on main by #2173 (5eba90af). It wasn't Windows-specific: #1976 made the primitive varargs part of the Java signature, and the test still expected build(String,Widget). The expectation is now build(String,Widget,int...), and the test passes on ubuntu, macos and windows in every run since.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working correctly

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions