GitNexus/gitnexus/test/unit/scope-resolution
Gergő Magyar 999cc9f913
fix(deps): upgrade native tree-sitter to 0.25.1 (#3531)
* fix(deps): upgrade native tree-sitter to 0.25.1

* fix(tree-sitter): preserve sync loading and update verified capture baselines

Route C# scope queries through the synchronous native grammar loader so the compiled analyze module remains require-compatible on Node 22.18. Refresh only the audited empty-Python-module and renamed-PHP-fixture captures, and pin the runtime assertion to 0.25.1.

Validated 479 targeted tests, all 16 scope-capture benchmark cases, Python capture/import guards, compiled C# worker parsing, build, typecheck and formatting. Performance budgets are unchanged.

* fix(tree-sitter): refresh upstream vendors and preserve parser semantics

* fix(ci): refresh prebuilds and support Windows ARM

Refresh macOS, Linux ARM, and Windows x64 grammar binaries from the successful native CI builds. Pin node-gyp 12.4.0 so the Windows ARM jobs recognize Visual Studio 2026.

Use local Git filtering for E2E to avoid PR-files API timeouts on generated parser diffs.

Validation: 143 focused tests, Actionlint, and all 16 scope-capture benchmark checks passed. Full npm test run started; native database suites still running.

* fix(ci): refresh Windows ARM grammar prebuilds

Import all seven Windows ARM grammar artifacts from successful native build run 37965761760. Artifact filenames and SHA-256 hashes verified; all 42 native build jobs passed.

Validation: 31 prebuild coverage tests passed.

* fix(bench): stabilize scope capture timing guard

Warm each input size seven times and use 21 median samples while retaining isolated timing blocks. Yield between languages so native finalizers release allocations outside the measured sections. Keep all fixture sizes, fingerprints, scaling formulas, and budgets unchanged.

Validation: all 16 language guards passed with a 2 GB heap limit (1.38 deep-chain ratio; 1518 MB peak RSS). Linear and quadratic controls passed their expected guard outcomes. Formatting and graph change analysis passed. Full npm test is running without failures so far.

* fix(parser): reduce TypeScript capture traversal cost

* fix(test): await parser worker readiness before teardown

* fix(parser): load C# synchronously in workers

* fix(grpc): resolve native proto detections against their own file

With the native proto grammar active, sibling .proto files that declare
the same short service name under different packages tied in the
directory-based resolveProtoConflict heuristic and both providers were
dropped. A proto-origin detection already knows its defining file, so
use that file's entry before falling back to the heuristic.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* ci(packaging): assert native grammars load from the installed tarball

The packaged-install smoke only ran `gitnexus --version`, so a grammar
that failed to load from the published package (bundled runtime, patched
peer manifests, vendored prebuilds, C# sync loader, Protobuf wrapper)
would ship silently; the dev-tree ABI smoke also accepts vendored
grammars that report unavailable. Parse a sample for every registered
grammar plus the native Protobuf plugin from the installed package, on
the main thread and in a worker thread.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* ci(tree-sitter): track compatibility workarounds instead of 0.25 readiness

The daily readiness report still targeted tree-sitter@0.25.0, so after the
upgrade it would keep reporting "Blocked" and never close its tracking issue.
Repurpose it to track what we carry for the bundled runtime: derive the target
from the package.json pin, list each pack-time peer patch from
prepare-tree-sitter-bundle.cjs with its drop condition (bump, wait for an
upstream release, transitive, or intentionally pinned), and reword the
buckets. The workflow adopts the issue opened under the old title.

Also update the grammar-update-monitor header and auto-PR text, which still
described the 0.21.1 runtime and a tree-sitter-c hold.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* test(dart): assert both nested labels target the loop; fix Zig call-shape doc

The nested-label CFG test only jumped to `outer` and checked reachability,
which still passes when a jump is retargeted to the inner loop (its exit
reaches the outer header). Jump to both labels and assert the exact
`continue` edges; dropping the inner label now fails the test.

Update the Zig callable-flow comment: call_expression now wraps actuals in a
required `arguments:` field.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 13:07:59 +03:00
..
c fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
cpp fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
csharp fix: bind Razor ViewComponent names to in-repo classes (#3104) 2026-08-30 22:41:13 +00:00
go fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
java fix(resolution): label fallback guesses and preserve export visibility (#3190) 2026-09-10 11:38:19 +01:00
javascript feat(ingestion): add tRPC procedure detection and MCP chain/route surfacing (#3339) 2026-09-21 09:44:42 +01:00
objective-c feat(indexing): add Objective-C semantic indexing support (#3179) 2026-09-09 09:40:21 +00:00
php fix(php): gate imports by Composer autoload map (#2987) 2026-08-25 07:56:41 +01:00
python fix(deps): upgrade native tree-sitter to 0.25.1 (#3531) 2026-10-10 13:07:59 +03:00
ruby fix(scope): keep nested declarations out of module bindings (#3502) 2026-10-08 11:05:41 +03:00
rust fix(deps): upgrade native tree-sitter to 0.25.1 (#3531) 2026-10-10 13:07:59 +03:00
swift fix(swift): avoid false calls for injected closure properties (#3434) 2026-10-02 23:31:14 +01:00
typescript fix(deps): upgrade native tree-sitter to 0.25.1 (#3531) 2026-10-10 13:07:59 +03:00
vue fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
c3-linearize-strategy.test.ts fix(python): resolve mixin calls with CPython C3 order (#3393) 2026-09-28 08:55:13 +00:00
callable-flow-captures.test.ts fix(impact): fail closed on id-less targets and follow ??/||/?: callable values (#3354) (#3373) 2026-09-25 21:43:24 +01:00
callable-value-flow-env.test.ts feat: make MAX_CALLABLE_VALUE_TARGETS configurable via env (#2725) 2026-08-01 12:42:36 +01:00
callable-value-flow-worklist.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
callable-value-target-index.test.ts fix(scope-resolution): parse def coordinates after file paths (#2743) 2026-07-30 07:34:32 +01:00
cobol-import-target-parity.test.ts fix(cobol): prefer copybook dirs so COPY EXTERNAL does not hit vendor decoys (#3240) 2026-09-10 15:42:59 +01:00
construction-syntax-wiring.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
def-index.test.ts feat(shared): DefIndex / ModuleScopeIndex / QualifiedNameIndex (#913, RFC #909 Ring 2 SHARED) (#958) 2026-04-18 15:59:34 +01:00
definition-id.test.ts fix(scope-resolution): parse def coordinates after file paths (#2743) 2026-07-30 07:34:32 +01:00
emit-references.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
esm-export-marker.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
external-import-conformance.test.ts fix(#2965): system headers must not resolve to in-repo files (#3341) 2026-09-27 13:40:54 +01:00
finalize-algorithm.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
finalize-orchestrator.test.ts fix(python): resolve classes through module imports (#2770) 2026-08-01 06:02:47 +01:00
free-call-fallback-guess-taint.test.ts fix(resolution): label fallback guesses and preserve export visibility (#3190) 2026-09-10 11:38:19 +01:00
function-local-import-chain.test.ts fix(check): stop reporting erased and deferred imports as initialization cycles (#2934) 2026-08-12 17:09:32 +00:00
generic-instantiation.test.ts fix(scope-resolution): make interface dispatch generic-instantiation aware (#2912) (#2939) 2026-08-13 14:50:53 +01:00
graph-bridge-label-split.test.ts fix: type an inference-typed class field so it can act as a call receiver (#2807) (#2810) 2026-08-04 19:31:25 +01:00
heritage-type-arguments.test.ts fix(scope-resolution): make interface dispatch generic-instantiation aware (#2912) (#2939) 2026-08-13 14:50:53 +01:00
import-scope-provenance.test.ts fix(resolution): label fallback guesses and preserve export visibility (#3190) 2026-09-10 11:38:19 +01:00
import-target-adapter.test.ts feat(ingestion): per-language resolveImportTarget adapter (#922, RFC #909 Ring 2 PKG) (#971) 2026-04-18 21:11:24 +01:00
import-target-index-parity.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
import-target-index-reuse.contract.test.ts fix(#2965): system headers must not resolve to in-repo files (#3341) 2026-09-27 13:40:54 +01:00
imported-return-types.test.ts fix(ingestion): two-channel binding lifecycle (closes #1066) + scope-resolution I8 hardening (#1082) 2026-04-26 12:16:09 +01:00
imports-to-edges-deferred.test.ts fix(check): stop reporting erased and deferred imports as initialization cycles (#2934) 2026-08-12 17:09:32 +00:00
imports-to-edges-type-only.test.ts fix(check): stop reporting erased and deferred imports as initialization cycles (#2934) 2026-08-12 17:09:32 +00:00
lexical-name-claims.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
method-dispatch-index.test.ts chore(shared): apply Ring 2 SHARED review follow-ups in one diff (#964) 2026-04-18 18:40:29 +01:00
module-scope-index.test.ts feat(shared): DefIndex / ModuleScopeIndex / QualifiedNameIndex (#913, RFC #909 Ring 2 SHARED) (#958) 2026-04-18 15:59:34 +01:00
name-fallback-summary.test.ts fix(resolution): label fallback guesses and preserve export visibility (#3190) 2026-09-10 11:38:19 +01:00
name-fallback-visibility.test.ts fix(ci): require every test to execute across the CI matrix (#3479) 2026-10-06 07:34:17 +03:00
namespace-channel-lookup.test.ts fix(csharp): eliminate global-namespace typeBindings O(files²) OOM (#1871) (#1954) 2026-05-31 18:21:07 +01:00
namespace-target-cache.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
namespace-targets-import-path.test.ts fix(python): resolve calls through aliased package re-exports (#3504) 2026-10-08 13:51:20 +03:00
node-lookup-determinism.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
overload-narrowing.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
parse-worker-scope-integration.test.ts fix(php): synthesize module scope for namespace-less PHP files (.phtml) (#1801) 2026-05-24 20:37:17 +01:00
php-import-target-parity.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
pick-implicit-this-overload.test.ts fix(swift): resolve inherited protocol extension calls (#3309) 2026-09-19 07:44:35 +01:00
pick-unique-global-callable.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
pick-unique-global-class.test.ts feat(swift): migrate Swift to scope-based registry resolution (#937) (#1948) 2026-05-31 16:56:47 +01:00
position-index.test.ts chore(shared): apply Ring 2 SHARED review follow-ups in one diff (#964) 2026-04-18 18:40:29 +01:00
property-dispatch-fanout-env.test.ts feat: make MAX_PROPERTY_DISPATCH_FANOUT configurable via env (#2726) 2026-08-01 12:18:07 +01:00
property-name-index.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
qualified-name-index.test.ts chore(shared): apply Ring 2 SHARED review follow-ups in one diff (#964) 2026-04-18 18:40:29 +01:00
receiver-chain-fold.test.ts fix(resolution): resolve Go pointer-receiver calls, and report the program boundary instead of hedging (#2766) (#2782) 2026-08-01 22:42:18 +01:00
receiver-chain-wiring.test.ts feat(resolution): type receiver chains from AST structure across all 14 languages (#2708) + epistemic lower-bound (#2744) (#2747) 2026-07-31 07:12:57 +01:00
reconcile-ownership.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
references-to-edges-call-form.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
registries.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
resolve-ambiguous-inheritance-base.test.ts fix(ingestion): migrate all languages' inheritance to scope-resolution on the worker path (#1951) (#1956) 2026-06-01 17:04:27 +01:00
resolve-references.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
resolve-type-ref.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
resolved-callee-names.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
run-progress.test.ts fix(impact): report scope extraction omissions (#3071) 2026-08-29 08:38:20 +01:00
rust-cargo-targets.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
scope-extractor.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
scope-id.test.ts feat(shared): ScopeTree + PositionIndex + makeScopeId (#912, RFC #909 Ring 2 SHARED) (#961) 2026-04-18 16:41:38 +01:00
scope-source-content-policy.test.ts feat(spring): build bean candidate inventory (#2494) 2026-07-20 09:28:23 +01:00
scope-tree.test.ts fix(scope-resolution): allow same-range Module-as-parent for top-level scopes (closes #1086) (#1087) 2026-04-27 11:06:54 +01:00
strip-cast-wrappers.test.ts fix: Java cast-wrapped and this.method() call edges (#2357) 2026-07-02 17:19:33 +01:00
swift-extension-owners.test.ts fix(swift): resolve inherited protocol extension calls (#3309) 2026-09-19 07:44:35 +01:00
swift-target-grouping.test.ts fix(swift): model Swift modules like the compiler (nested packages, Xcode targets, linear visibility) (#3387) 2026-09-27 06:24:35 +01:00
type-parameters.test.ts fix(resolution): resolve calls through a generic-typed field receiver in every language (#2833) (#2855) 2026-08-07 17:14:13 +01:00
type-value-namespaces.test.ts fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
undecided-satisfaction.test.ts fix(go): resolve out-of-repo package qualifiers, and stop reporting an undecided interface check as a decided negative (#2873) (#2921) 2026-08-11 10:36:59 +01:00
unresolved-receiver-files.test.ts fix(go): scope and define each type_spec, not the type_declaration (#2837) (#2843) 2026-08-06 00:55:48 +01:00
unresolved-receivers.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
validate-bindings-immutability.test.ts fix(csharp): eliminate global-namespace typeBindings O(files²) OOM (#1871) (#1954) 2026-05-31 18:21:07 +01:00
value-ref-dispatchability.test.ts fix(zig): model callable-value references, and stop reporting their absence as exact (#3219) 2026-09-09 20:12:17 +00:00
value-ref-namespace-precedence.test.ts fix(python): resolve calls through aliased package re-exports (#3504) 2026-10-08 13:51:20 +03:00
walkers-augmentations.test.ts fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
wildcard-collision-export-evidence.test.ts fix(resolution): label fallback guesses and preserve export visibility (#3190) 2026-09-10 11:38:19 +01:00
wildcard-topLevelOnly-gate.test.ts fix(resolution): label fallback guesses and preserve export visibility (#3190) 2026-09-10 11:38:19 +01:00
workspace-index.test.ts fix(swift): resolve inherited protocol extension calls (#3309) 2026-09-19 07:44:35 +01:00