GitNexus/gitnexus/test
Sumiteshwark 68c42009df
Some checks are pending
Publish / ci (push) Blocked by required conditions
Publish / Publish to npm (push) Blocked by required conditions
Trivy Image Scan / Trivy (gitnexus-web) (push) Waiting to run
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Gitleaks / gitleaks (push) Waiting to run
Publish / Classify release event (push) Waiting to run
Publish / RC guard (marker + release-PR skip) (push) Blocked by required conditions
Publish / Build & Push RC Docker images (push) Blocked by required conditions
Scorecard / Scorecard analysis (push) Waiting to run
Skill copy sync / shipped skills drift guard (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-cli) (push) Waiting to run
fix(dart): anchor @name so a constructor initializer stops minting a … (#3224)
* fix(dart): anchor @name so a constructor initializer stops minting a phantom

    A Dart declaration whose value is a constructor call parses the callee as a
    SECOND (identifier) sibling of the declared name:

      final TextEditingController _title = TextEditingController();
      -> initialized_identifier[ identifier "_title",
                                 identifier "TextEditingController", selector ]

    The five graph-node rules that capture fields and top-level variables matched
    `(identifier) @name` without the first-child anchor, so @name bound to both
    siblings and the query minted a phantom Property/Variable named after the TYPE
    alongside the real declaration. On dart-flutter-conduit that produced a
    `Property TextEditingController` next to the genuine `_title` / `_body` in
    editor_screen.dart and login_screen.dart.

    static_final_declaration has the same shape, so class statics and top-level
    final/const were affected too, as were top-level `var`/`final` variables. All
    five rules now anchor @name with `.`, matching the mirror rules in
    languages/dart/query.ts which already anchored.

    Verified against the vendored grammar: the phantoms disappear and every real
    declaration is still captured (_title, _body, nullable field, static final,
    uninitialized field, top-level final, top-level var). End to end on
    dart-flutter-conduit: Property nodes 108 -> 106, type-shaped names 2 -> 0,
    real fields unchanged.

    The new test loads the grammar via createParserForLanguage rather than
    loadLanguage: loadLanguage resolves to void, so the surrounding
    `if (!(await loadDartOrSkip())) return;` idiom is always falsy and skips the
    body. Confirmed as a negative control -- reverting only the query change makes
    the new test fail on the exact phantom.

* chore(autofix): apply prettier + eslint fixes via /autofix command

* Address PR review feedback (#3224)

Correct the RHS_ONLY_TYPES comments so they state the capture invariant
instead of claiming those names appear only as constructor callees.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Address PR review feedback (#3224)

Build the Dart query with Parser.Query and parser.getLanguage() so the
test no longer casts the tree (or Query/captures) through any.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 21:05:09 +01:00
..
fixtures fix(schema): persist Spring constructor-to-bean injection edges (#3239) 2026-09-10 16:03:53 +01:00
helpers feat(indexing): add Objective-C semantic indexing support (#3179) 2026-09-09 09:40:21 +00:00
integration feat(analyze): add explicit FTS opt-out (#3205) 2026-09-11 14:05:28 +00:00
unit fix(dart): anchor @name so a constructor initializer stops minting a … (#3224) 2026-09-11 21:05:09 +01:00
utils fix(hook): emit MCP query hint when server owns DB lock (#2396) (#2397) 2026-07-08 18:34:05 +01:00