test(ingestion): scope #1978 resolver tests to registry-primary leg; fix lint

- helpers.ts: exclude the new #1978 C++/Ruby resolver tests from the legacy
  parity leg (LEGACY_RESOLVER_PARITY_EXPECTED_FAILURES). They PASS on legacy
  too — the fix lives in the SHARED structure phase, not the legacy resolution
  path — so this is a deliberate registry-primary-only scoping (not a legacy
  gap), keeping the legacy path untouched and uncoupled from the new
  node-identity behavior.
- rust.test.ts: drop the `eslint-disable vitest/no-disabled-tests` directive.
  That rule isn't configured in this repo, so eslint errored "Definition for
  rule 'vitest/no-disabled-tests' was not found" and failed `quality / lint`.
  The describe.skip needs no disable directive.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Gergo Magyar 2026-06-03 02:44:41 +00:00
parent dc122897a9
commit ddc31ba72e
2 changed files with 22 additions and 3 deletions

View file

@ -255,8 +255,15 @@ const LEGACY_RESOLVER_PARITY_EXPECTED_FAILURES: Readonly<Record<string, Readonly
ruby: new Set<string>([
// Ruby scope-resolution currently achieves 89/127 parity.
// Tests listed here are scope-resolver-only correctness wins
// (pass under registry-primary, fail under legacy). Currently
// empty — all 127 tests pass under legacy mode.
// (pass under registry-primary, fail under legacy).
//
// #1978 qualified nested-type node identity. NOTE: these PASS under the
// legacy leg too — the fix is in the SHARED structure phase, not the legacy
// resolution path. They are excluded here by policy to keep the #1978
// assertions registry-primary-only and avoid coupling the legacy parity leg
// to the new node-identity behavior.
'owns from_outer / from_other through distinct Outer.Inner / Other.Inner nodes (R7)',
'owns radius (attr_accessor) under the qualified Shapes.Circle node, no dangling (R7)',
]),
swift: new Set<string>([
// Swift scope-resolution achieves 77/77 baseline parity. The tests
@ -481,6 +488,17 @@ const LEGACY_RESOLVER_PARITY_EXPECTED_FAILURES: Readonly<Record<string, Readonly
// sidecars and scope-resolver overload narrowing. The legacy DAG does not
// rank function-template shapes, so it leaves the call unresolved.
'pick(T*) wins over pick(T) for pointer arguments',
// #1978 qualified nested-type node identity. NOTE: unlike the entries above,
// these PASS under the legacy leg too — the fix is in the SHARED structure
// phase, not the legacy resolution path, so the legacy DAG is untouched and
// still produces the qualified nodes. They are excluded here by policy to
// keep the #1978 assertions registry-primary-only and avoid coupling the
// legacy parity leg to the new node-identity behavior.
'materializes Outer.Inner and Other.Inner as two distinct Struct nodes',
'owns from_outer / from_other through their OWN distinct node (positive identity, R7)',
'owns outer_field under Outer.Inner (struct field via the main HAS_PROPERTY path)',
'genuinely used the worker pool (guards against silent sequential fallback)',
'materializes two distinct Struct nodes and owns each method correctly (R7)',
]),
};

View file

@ -2067,7 +2067,8 @@ describe('Rust scoped inherent impl — ownership + collision (issue #1975)', ()
// is separate machinery tracked as a follow-up. C++/Ruby land first (KTD-6).
// ---------------------------------------------------------------------------
// eslint-disable-next-line vitest/no-disabled-tests -- deferred follow-up (see above)
// Skipped: Rust inherent-impl ownership is deferred to the resolution-side
// follow-up (see the comment block above). Tracked in the #1978 follow-up issue.
describe.skip('Rust inline mod-nested same-tail collision — distinct nodes (issue #1978)', () => {
let result: PipelineResult;