Repository navigation
Fix explicit overrides through non-redeclaring ancestors - #2514
Conversation
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>
|
Checkpoint and handover (2026-10-03 UTC) Published head: 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. |
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
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.