Skip to content

Conversation

@AlexWaygood
Copy link
Member

Summary

There are quite a few places we infer Todo types currently, and some of them are nested somewhat deeply in type expressions. These can cause spurious issues for the new redundant-cast diagnostics. We fixed all the false positives we saw in the mypy_primer report before merging #17100, but I think there are still lots of places where we'd emit false positives due to this check -- we currently don't run on that many projects at all in our mypy_primer check:

--project-selector '/(mypy_primer|black|pyp|git-revise|zipp|arrow|isort|itsdangerous|rich|packaging|pybind11|pyinstrument|typeshed-stats)$' \

This PR fixes some more false positives from this diagnostic by making the Type::contains_todo() method more expansive.

Test Plan

I added a regression test which causes us to emit a spurious diagnostic on main, but does not with this PR.

@AlexWaygood AlexWaygood added the ty Multi-file analysis & type inference label Apr 1, 2025
@AlexWaygood AlexWaygood changed the title Fix more redundant-cast false positives [red-knot] Fix more redundant-cast false positives Apr 1, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Apr 1, 2025

mypy_primer results

No ecosystem changes detected ✅

@AlexWaygood AlexWaygood merged commit c74ba00 into main Apr 1, 2025
23 checks passed
@AlexWaygood AlexWaygood deleted the alex/cast-todos branch April 1, 2025 18:03
dcreager added a commit that referenced this pull request Apr 1, 2025
* main:
  [red-knot] Add property tests for callable types (#17006)
  [red-knot] Disjointness for callable types (#17094)
  [red-knot] Flatten `Type::Callable` into four `Type` variants (#17126)
  mdtest.py: do a full mdtest run immediately when the script is executed (#17128)
  [red-knot] Fix callable subtyping for standard parameters (#17125)
  [red-knot] Fix more `redundant-cast` false positives (#17119)
  Sync vendored typeshed stubs (#17106)
  [red-knot] support Any as a class in typeshed (#17107)
  Visit `Identifier` node as part of the `SourceOrderVisitor` (#17110)
  [red-knot] Don't infer Todo for quite so many tuple type expressions (#17116)
  CI: Run pre-commit on depot machine (#17120)
  Error instead of `panic!` when running Ruff from a deleted directory (#16903) (#17054)
  Control flow graph: setup (#17064)
  [red-knot] Playground improvements (#17109)
  [red-knot] IDE crate (#17045)
  Update dependency vite to v6.2.4 (#17104)
  [red-knot] Add redundant-cast error (#17100)
  [red-knot] Narrowing on `in tuple[...]` and `in str` (#17059)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants