Skip to content

Fix explicit overrides through non-redeclaring ancestors - #2514

Merged
DeusData merged 2 commits into
mainfrom
fix/issue-1278-override-v3
Oct 8, 2026
Merged

DeusData merged 2 commits into
mainfrom
fix/issue-1278-override-v3

Conversation

@DeusData

@DeusData DeusData commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Explicit OVERRIDE extraction misses a method when an intermediate base inherits it without redeclaring it. Walk INHERITS/IMPLEMENTS edges to the nearest declaring depth, retain every equally near target, and deduplicate diamonds while terminating cycles. This defines the cross-language graph relation; it does not model Python runtime MRO.

Python import-binding checks prevent external imports and aliases from resolving to same-named project classes in sequential, parallel, and cross-file resolution. The same scope also protects typed-field folding. The corrected parent’s field-array copy-on-write fix and both #1277 pipeline regressions are preserved.

Adds regression cases for intermediate bases, equal-depth targets, diamonds, nearest-only lookup, missing declarations, cycles, repeated-pass edge counts, and Go exclusion. The external-base fixture checks the forward TestCase.setUp -> SimpleTestCase.setUp edge and rejects its reverse with both small and parallel-sized repositories.

Depends on #2498. This branch includes its Python field-resolution and ownership fixes; they remain in the cumulative diff until that prerequisite is merged. The PR targets main so the repository's PR and CodeQL workflows run. Refs #1278. Existing TYPE_CHECKING handling, super() suffix fallbacks, and the separate known-red reproduction board remain outside this change. Existing indexes need reindexing to gain the corrected edges.

Validation: reviewed source, exact patch hashes, eight-file scope, and preservation of parent corrections. Local builds, tests, and revert proofs were not run; the maintainer explicitly waived local CI for this continuation. GitHub CI must validate the published SHA before merge. No current runtime pass or corpus-improvement claim is made.

Preserve all equally near targets and guard Python inheritance against external import collisions.

Refs #1278.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData
DeusData changed the base branch from fix/issue-1277-py-crossfile-fields-v2 to main October 3, 2026 16:41
@DeusData

DeusData commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

Checkpoint and handover (2026-10-03 UTC)

Published head: 6b1cc878abbf532b6761feda444aa9f630386dd2. The remote head was verified.

The override fix for #1278 depends on #2498. Its source review covers the external-base guard, legitimate indirect overrides, reverse-edge negatives and declaring-parent cases. Required PR/CodeQL checks did not start after the base-only edit. One exact close/reopen cycle was proposed but remains unapproved; do not substitute another trigger or infer approval from this handover.

Hosted snapshot at 2026-10-03 21:54:13 UTC: 1 skipped, 2 success. Confirm the required checks on this exact head before treating it as ready.

No additional local build, test, lint, sanitizer, benchmark or CI runs were performed at this checkpoint, as requested. Earlier executed evidence remains historical; prepared tests and the newer source-reviewed changes must still be validated by the hosted gate.

The campaign is paused at the maintainer’s request. Local monitoring has stopped; hosted jobs remain running. No merge was performed. Thanks for reviewing this change.

@DeusData DeusData closed this Oct 4, 2026
@DeusData DeusData reopened this Oct 4, 2026
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData
DeusData merged commit c202539 into main Oct 8, 2026
46 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant