Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[red-knot] Fix bugs relating to assignability of dynamic type[] types #14972

Merged
merged 3 commits into from
Dec 15, 2024

Conversation

AlexWaygood
Copy link
Member

Summary

  • type[Unknown] and type[Todo] should be considered assignable to all type[] types, just like type[Any]. Currently we do not treat them as such.
  • type[Any] should be considered assignable to instances of subclasses of type. Currently we only consider it assignable to Instance("builtins.type"), and do not consider it assignable to Instance("abc.ABCMeta") -- but ABCMeta is a subclass of type.

Test Plan

New unit tests and mdtests added. They fail on main.

@AlexWaygood AlexWaygood added the red-knot Multi-file analysis & type inference label Dec 14, 2024
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed this file from any.md to dynamic.md since it now contains tests for type[Unknown] as well as type[Any]. They're not different enough to justify a separate test file for type[Unknown], I don't think.

@AlexWaygood AlexWaygood added the bug Something isn't working label Dec 14, 2024
@AlexWaygood AlexWaygood force-pushed the alex/type-unknown-assignability branch from f5c8cec to ccb6abf Compare December 14, 2024 16:20
Copy link
Contributor

github-actions bot commented Dec 14, 2024

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

Copy link
Contributor

@carljm carljm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@AlexWaygood AlexWaygood enabled auto-merge (squash) December 15, 2024 01:11
@AlexWaygood AlexWaygood merged commit fa46ba2 into main Dec 15, 2024
20 checks passed
@AlexWaygood AlexWaygood deleted the alex/type-unknown-assignability branch December 15, 2024 01:15
dcreager added a commit that referenced this pull request Dec 16, 2024
* main: (25 commits)
  [`pydocstyle`] Skip leading whitespace for `D403` (#14963)
  Update pre-commit dependencies (#15008)
  Check diagnostic refresh support from client capability (#15014)
  Update Rust crate colored to v2.2.0 (#15010)
  Update dependency monaco-editor to v0.52.2 (#15006)
  Update Rust crate thiserror to v2.0.7 (#15005)
  Update Rust crate serde to v1.0.216 (#15004)
  Update Rust crate libc to v0.2.168 (#15003)
  Update Rust crate fern to v0.7.1 (#15002)
  Update Rust crate chrono to v0.4.39 (#15001)
  Update Rust crate bstr to v1.11.1 (#15000)
  Update NPM Development dependencies (#14999)
  Update dependency ruff to v0.8.3 (#15007)
  Pin mdformat plugins in pre-commit (#14992)
  Use stripping block (`|-`) for page descriptions (#14980)
  [`perflint`] Fix panic in `perf401` (#14971)
  Improve the documentation of E201/E202 (#14983)
  [ruff_python_ast] Add name and default functions to TypeParam. (#14964)
  [red-knot] Emit an error if a bare `Annotated` or `Literal` is used in a type expression (#14973)
  [red-knot] Fix bugs relating to assignability of dynamic `type[]` types (#14972)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working red-knot Multi-file analysis & type inference
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants