Skip to content

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

Merged
AlexWaygood merged 3 commits intomainfrom
alex/type-unknown-assignability
Dec 15, 2024
Merged

[red-knot] Fix bugs relating to assignability of dynamic type[] types#14972
AlexWaygood merged 3 commits intomainfrom
alex/type-unknown-assignability

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 ty 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
@github-actions
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
@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 ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants