← board

An override changing the result type, in a late-laid-out class, is refused

Found 2026-09-19 (frankH) while fixing the test_nilpy_line_continuation red that f646378ff introduced: that fix deferred a subclass of a deferred class, which put class Base(object) / class Derived(Base) on this path. That pair is fixed separately (a sole object, Generic[...] or Protocol[...] base is now "no parent" in the prepass, so neither class is deferred). The residual is the multi-base shape.

Fixture: test/test_nilpy_an_override_widening_a_compiled_base_is_refused_fail.npy (Makefile must-refuse row). When this is fixed, that row flips: turn it into a positive fixture against CPython (P().v() + 1 prints 1, D().v() + 1 2.5).