Impact
When an upstream issue states how other tools report the same bug, that text
tells us which mechanism the maintainers will accept. Mailman drops it, and the
agents pick a framing on their own.
python/mypy#21960 says pyright and ty reject the case as a generic TypeVar
upper bound, and zuban rejects it as an invalid Self location. Our run
(python/mypy#21961) chose the Self-location framing and added a new message
for it. A contributor answered that the real rule is the generic bound, and the
typing spec agrees: "The bound itself cannot be parameterized by type
variables." A prototype of the generic-bound check on the base commit rejects
the reported case plus two more that the base silently accepts
(class D[U]: def g[T: U] and def nested[T: list[Self]]), with
pytest mypy/test/testcheck.py at 8241 passed, 15 skipped, 7 xfailed. Our PR
is now being closed in favour of theirs.
Evidence
Next action
Two candidates, smallest first:
build-prompts extracts any comparison to another tool or checker from the
issue body into the work order, and the reviewer prompt asks explicitly
which of those framings the patch follows and why the others were not taken.
- The report template gains a required "mechanism chosen and rejected
alternatives" field, checked by the review-page gate the same way evidence
classes are.
Neither needs a new subsystem. Option 1 is the one to do.
Impact
When an upstream issue states how other tools report the same bug, that text
tells us which mechanism the maintainers will accept. Mailman drops it, and the
agents pick a framing on their own.
python/mypy#21960 says pyright and ty reject the case as a generic TypeVar
upper bound, and zuban rejects it as an invalid
Selflocation. Our run(python/mypy#21961) chose the
Self-location framing and added a new messagefor it. A contributor answered that the real rule is the generic bound, and the
typing spec agrees: "The bound itself cannot be parameterized by type
variables." A prototype of the generic-bound check on the base commit rejects
the reported case plus two more that the base silently accepts
(
class D[U]: def g[T: U]anddef nested[T: list[Self]]), withpytest mypy/test/testcheck.pyat 8241 passed, 15 skipped, 7 xfailed. Our PRis now being closed in favour of theirs.
Evidence
Self is not rejected when used as a PEP 695 type parameter bound python/mypy#21960
Next action
Two candidates, smallest first:
build-promptsextracts any comparison to another tool or checker from theissue body into the work order, and the reviewer prompt asks explicitly
which of those framings the patch follows and why the others were not taken.
alternatives" field, checked by the review-page gate the same way evidence
classes are.
Neither needs a new subsystem. Option 1 is the one to do.