Skip to content

Properly check for equivalent return types when determining whether overload resolution is ambiguous#2685

Open
rchen152 wants to merge 9 commits intofacebook:mainfrom
rchen152:export-D95512431
Open

Properly check for equivalent return types when determining whether overload resolution is ambiguous#2685
rchen152 wants to merge 9 commits intofacebook:mainfrom
rchen152:export-D95512431

Conversation

@rchen152
Copy link
Contributor

@rchen152 rchen152 commented Mar 6, 2026

Summary: Fixes #2552.

Differential Revision: D95512431

@meta-cla meta-cla bot added the cla signed label Mar 6, 2026
@meta-codesync
Copy link

meta-codesync bot commented Mar 6, 2026

@rchen152 has exported this pull request. If you are a Meta employee, you can view the originating Diff in D95512431.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

rchen152 added a commit to rchen152/pyrefly that referenced this pull request Mar 6, 2026
…verload resolution is ambiguous (facebook#2685)

Summary:

Fixes facebook#2552.

Differential Revision: D95512431
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

rchen152 added a commit to rchen152/pyrefly that referenced this pull request Mar 6, 2026
…verload resolution is ambiguous (facebook#2685)

Summary:

Fixes facebook#2552.

Differential Revision: D95512431
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

rchen152 added 9 commits March 6, 2026 17:59
Summary:
From https://typing.python.org/en/latest/spec/glossary.html#term-equivalent:
> Two gradual types A and B are equivalent if all materializations of A are also materializations of B, and all materializations of B are also materializations of A.

Adds an implementation of equivalence reusing the existing `Type::Materialization` that we added for overload resolution.

The following diffs will fix a few bugs in is_subset_eq and materialization, culminating in us being able to replace the complicated type normalization we do for `assert_type` with an `is_equivalent` check.

Differential Revision: D95512432
Summary: The spec says that `type` distributes over unions: https://typing.python.org/en/latest/spec/special-types.html#type, which we weren't doing in some cases.

Differential Revision: D95638889
Summary:
A `TypeVar(...)` call now has type `TypeVar` (and same for `ParamSpec`, etc.).

This diff only tests one of the new match arms in is_subset_eq; the rest will be exercised by `test::generic_legacy::test_typevar_values` once we make `assert_type` use `is_equivalent`.

Differential Revision: D95639448
Summary:
Enum literals contain `ClassType`s that we shouldn't visit when looking for type variable references.

I don't have any evidence that visiting literals is currently causing any problems, but I want to reuse this visit pattern to fix a bug in `materialize()`, and replacing `Any` with `Type::Materialization` in literals would cause problems.

Differential Revision: D95640356
Summary: This will be used to fix a bug in `Type::materialize()`.

Differential Revision: D95640826
Summary: `Type::materialize()` was replacing `Any` with `Materialization` everywhere, including unexpected places like the tparams in enum classes stored in literals.

Differential Revision: D95641165
Summary:

Changes `assert_type` to check for equivalence between types instead of normalizing types and and checking for equality. This is both more spec-compliant and simpler.

The test changes are because we no longer normalize `Unknown` to `Any`.

Differential Revision: D95641740
Summary: Removes functions that were previously used to normalize types for `assert_type`.

Differential Revision: D95642296
…verload resolution is ambiguous (facebook#2685)

Summary:

Fixes facebook#2552.

Differential Revision: D95512431
@github-actions
Copy link

github-actions bot commented Mar 7, 2026

Diff from mypy_primer, showing the effect of this PR on open source code:

trio (https://github.com/python-trio/trio)
- ERROR src/trio/_tests/type_tests/path.py:69:16-52: assert_type(Any, Path) failed [assert-type]
+ ERROR src/trio/_tests/type_tests/path.py:69:16-52: assert_type(Unknown, Path) failed [assert-type]
- ERROR src/trio/_tests/type_tests/path.py:86:20-43: assert_type(Any, Path) failed [assert-type]
+ ERROR src/trio/_tests/type_tests/path.py:86:20-43: assert_type(Unknown, Path) failed [assert-type]
- ERROR src/trio/_tests/type_tests/path.py:96:16-50: assert_type(Any, Path) failed [assert-type]
+ ERROR src/trio/_tests/type_tests/path.py:96:16-50: assert_type(Unknown, Path) failed [assert-type]
- ERROR src/trio/_tests/type_tests/path.py:99:16-49: assert_type(Any, Path) failed [assert-type]
+ ERROR src/trio/_tests/type_tests/path.py:99:16-49: assert_type(Unknown, Path) failed [assert-type]

mypy-protobuf (https://github.com/dropbox/mypy-protobuf)
- ERROR test/test_generated_mypy.py:492:16-35: assert_type(Any, UserId) failed [assert-type]
+ ERROR test/test_generated_mypy.py:492:16-35: assert_type(Unknown, UserId) failed [assert-type]
- ERROR test/test_generated_mypy.py:493:16-32: assert_type(Any, Email) failed [assert-type]
+ ERROR test/test_generated_mypy.py:493:16-32: assert_type(Unknown, Email) failed [assert-type]
- ERROR test/test_generated_mypy.py:494:16-58: assert_type(Any, ScalarMap[UserId, Email]) failed [assert-type]
+ ERROR test/test_generated_mypy.py:494:16-58: assert_type(Unknown, ScalarMap[UserId, Email]) failed [assert-type]
- ERROR test/test_generated_mypy.py:503:16-36: assert_type(Any, UserId) failed [assert-type]
+ ERROR test/test_generated_mypy.py:503:16-36: assert_type(Unknown, UserId) failed [assert-type]
- ERROR test/test_generated_mypy.py:504:16-33: assert_type(Any, Email) failed [assert-type]
+ ERROR test/test_generated_mypy.py:504:16-33: assert_type(Unknown, Email) failed [assert-type]
- ERROR test/test_generated_mypy.py:505:16-59: assert_type(Any, ScalarMap[UserId, Email]) failed [assert-type]
+ ERROR test/test_generated_mypy.py:505:16-59: assert_type(Unknown, ScalarMap[UserId, Email]) failed [assert-type]

hydpy (https://github.com/hydpy-dev/hydpy)
+ ERROR hydpy/auxs/calibtools.py:1753:9-17: Implementation signature `(self: Self@CalibrationInterface, name: str, type_: type[TypeRule2] | None = None) -> TypeRule1 | TypeRule2` does not accept all arguments that overload signature `(self: Self@CalibrationInterface, name: str, type_: type[TypeRule2]) -> TypeRule2` accepts [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:1753:9-17: Overload return type `Add | Multiply | MultiplyIUH | Replace | ReplaceIUH` is not assignable to implementation return type `Add` [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3165:5-15: Implementation signature `(*, rule: type[TypeRule], calibspecs: CalibSpecs | None = None, names: Sequence[str] | None = None, parameters: Sequence[Parameter | str] | None = None, values: Sequence[float] | None = None, keywords: Sequence[str | None] | None = None, lowers: Sequence[float] | None = None, uppers: Sequence[float] | None = None, parametersteps: Sequence[Period | str | timedelta | None] | Period | str | timedelta | None = None, model: ModuleType | str | None = None, selections: Iterable[Selection | str] | None = None, product: bool = False) -> list[TypeRule]` does not accept all arguments that overload signature `(*, rule: type[TypeRule], names: Sequence[str], parameters: Sequence[Parameter | str], values: Sequence[float], lowers: Sequence[float], uppers: Sequence[float], parametersteps: Sequence[Period | str | timedelta | None] | Period | str | timedelta | None = None, model: ModuleType | str | None = None, selections: None = None) -> list[TypeRule]` accepts [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3165:5-15: Overload return type `list[Add | Multiply | Replace]` is not assignable to implementation return type `list[Add]` [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3180:5-15: Implementation signature `(*, rule: type[TypeRule], calibspecs: CalibSpecs | None = None, names: Sequence[str] | None = None, parameters: Sequence[Parameter | str] | None = None, values: Sequence[float] | None = None, keywords: Sequence[str | None] | None = None, lowers: Sequence[float] | None = None, uppers: Sequence[float] | None = None, parametersteps: Sequence[Period | str | timedelta | None] | Period | str | timedelta | None = None, model: ModuleType | str | None = None, selections: Iterable[Selection | str] | None = None, product: bool = False) -> list[TypeRule]` does not accept all arguments that overload signature `(*, rule: type[TypeRule], names: Sequence[str], parameters: Sequence[Parameter | str], values: Sequence[float], keywords: Sequence[str | None] | None = None, lowers: Sequence[float], uppers: Sequence[float], parametersteps: Sequence[Period | str | timedelta | None] | Period | str | timedelta | None = None, model: ModuleType | str | None = None, selections: Iterable[Selection | str], product: bool = False) -> list[TypeRule]` accepts [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3180:5-15: Overload return type `list[Add | Multiply | Replace]` is not assignable to implementation return type `list[Add]` [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3197:5-15: Implementation signature `(*, rule: type[TypeRule], calibspecs: CalibSpecs | None = None, names: Sequence[str] | None = None, parameters: Sequence[Parameter | str] | None = None, values: Sequence[float] | None = None, keywords: Sequence[str | None] | None = None, lowers: Sequence[float] | None = None, uppers: Sequence[float] | None = None, parametersteps: Sequence[Period | str | timedelta | None] | Period | str | timedelta | None = None, model: ModuleType | str | None = None, selections: Iterable[Selection | str] | None = None, product: bool = False) -> list[TypeRule]` does not accept all arguments that overload signature `(*, rule: type[TypeRule], calibspecs: CalibSpecs, names: Sequence[str] | None = None, parameters: Sequence[Parameter | str] | None = None, values: Sequence[float] | None = None, keywords: Sequence[str | None] | None = None, lowers: Sequence[float] | None = None, uppers: Sequence[float] | None = None, model: ModuleType | str | None = None, selections: None = None) -> list[TypeRule]` accepts [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3197:5-15: Overload return type `list[Add | Multiply | Replace]` is not assignable to implementation return type `list[Add]` [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3213:5-15: Implementation signature `(*, rule: type[TypeRule], calibspecs: CalibSpecs | None = None, names: Sequence[str] | None = None, parameters: Sequence[Parameter | str] | None = None, values: Sequence[float] | None = None, keywords: Sequence[str | None] | None = None, lowers: Sequence[float] | None = None, uppers: Sequence[float] | None = None, parametersteps: Sequence[Period | str | timedelta | None] | Period | str | timedelta | None = None, model: ModuleType | str | None = None, selections: Iterable[Selection | str] | None = None, product: bool = False) -> list[TypeRule]` does not accept all arguments that overload signature `(*, rule: type[TypeRule], calibspecs: CalibSpecs, names: Sequence[str] | None = None, parameters: Sequence[Parameter | str] | None = None, values: Sequence[float] | None = None, keywords: Sequence[str | None] | None = None, lowers: Sequence[float] | None = None, uppers: Sequence[float] | None = None, model: ModuleType | str | None = None, selections: Iterable[Selection | str], product: bool = False) -> list[TypeRule]` accepts [inconsistent-overload]
+ ERROR hydpy/auxs/calibtools.py:3213:5-15: Overload return type `list[Add | Multiply | Replace]` is not assignable to implementation return type `list[Add]` [inconsistent-overload]
- ERROR hydpy/models/conv/conv_model.py:392:13-400:86: Pyrefly detected conflicting types while breaking a dependency cycle: `float | ndarray[tuple[Any, ...], dtype[float64]]` is not assignable to `float`. Adding explicit type annotations might possibly help. [bad-assignment]
- ERROR hydpy/models/conv/conv_model.py:394:41-55: Argument `ndarray[tuple[Any, ...], dtype[Unknown]]` is not assignable to parameter `double` with type `float` in function `hydpy.cythons.modelutils.isnan` [bad-argument-type]
- ERROR hydpy/tests/plugin/check_submodeladder_hooks.py:24:24-55: assert_type(Any, Model) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_submodeladder_hooks.py:24:24-55: assert_type(Unknown, Model) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:31:16-83: assert_type(SubParameters[Any], ControlParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:31:16-83: assert_type(SubParameters[Unknown], ControlParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:32:16-83: assert_type(SubParameters[Any], ControlParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:32:16-83: assert_type(SubParameters[Unknown], ControlParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:35:16-81: assert_type(SubParameters[Any], DerivedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:35:16-81: assert_type(SubParameters[Unknown], DerivedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:36:16-81: assert_type(SubParameters[Any], DerivedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:36:16-81: assert_type(SubParameters[Unknown], DerivedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:39:16-79: assert_type(SubParameters[Any], FixedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:39:16-79: assert_type(SubParameters[Unknown], FixedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:40:16-79: assert_type(SubParameters[Any], FixedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:40:16-79: assert_type(SubParameters[Unknown], FixedParameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:43:16-87: assert_type(SubParameters[Any], SolverParameters[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:43:16-87: assert_type(SubParameters[Unknown], SolverParameters[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:44:16-87: assert_type(SubParameters[Any], SolverParameters[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:44:16-87: assert_type(SubParameters[Unknown], SolverParameters[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:48:16-76: assert_type(InputSequences[Any], InputSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:48:16-76: assert_type(InputSequences[Unknown], InputSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:49:16-76: assert_type(InputSequences[Any], InputSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:49:16-76: assert_type(InputSequences[Unknown], InputSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:52:16-78: assert_type(FactorSequences[Any], FactorSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:52:16-78: assert_type(FactorSequences[Unknown], FactorSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:53:16-78: assert_type(FactorSequences[Any], FactorSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:53:16-78: assert_type(FactorSequences[Unknown], FactorSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:56:16-76: assert_type(FluxSequences[Any], FluxSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:56:16-76: assert_type(FluxSequences[Unknown], FluxSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:57:16-76: assert_type(FluxSequences[Any], FluxSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:57:16-76: assert_type(FluxSequences[Unknown], FluxSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:60:16-77: assert_type(StateSequences[Any], StateSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:60:16-77: assert_type(StateSequences[Unknown], StateSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:61:16-77: assert_type(StateSequences[Any], StateSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:61:16-77: assert_type(StateSequences[Unknown], StateSequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:64:16-84: assert_type(LogSequences[Any], LogSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:64:16-84: assert_type(LogSequences[Unknown], LogSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:65:16-84: assert_type(LogSequences[Any], LogSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:65:16-84: assert_type(LogSequences[Unknown], LogSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:68:16-74: assert_type(InletSequences[Any], InletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:68:16-74: assert_type(InletSequences[Unknown], InletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:69:16-74: assert_type(InletSequences[Any], InletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:69:16-74: assert_type(InletSequences[Unknown], InletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:72:16-76: assert_type(OutletSequences[Any], OutletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:72:16-76: assert_type(OutletSequences[Unknown], OutletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:73:16-76: assert_type(OutletSequences[Any], OutletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:73:16-76: assert_type(OutletSequences[Unknown], OutletSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:76:16-77: assert_type(ReceiverSequences[Any], ReceiverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:76:16-77: assert_type(ReceiverSequences[Unknown], ReceiverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:77:16-77: assert_type(ReceiverSequences[Any], ReceiverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:77:16-77: assert_type(ReceiverSequences[Unknown], ReceiverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:80:16-77: assert_type(ObserverSequences[Any], ObserverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:80:16-77: assert_type(ObserverSequences[Unknown], ObserverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:81:16-77: assert_type(ObserverSequences[Any], ObserverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:81:16-77: assert_type(ObserverSequences[Unknown], ObserverSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:84:16-75: assert_type(SenderSequences[Any], SenderSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:84:16-75: assert_type(SenderSequences[Unknown], SenderSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_subvariables_hook2.py:85:16-75: assert_type(SenderSequences[Any], SenderSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_subvariables_hook2.py:85:16-75: assert_type(SenderSequences[Unknown], SenderSequences[hydpy.models.dam.dam_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook1.py:14:16-76: assert_type(Parameters[Any], Parameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook1.py:14:16-76: assert_type(Parameters[Unknown], Parameters[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook1.py:15:16-75: assert_type(Parameters[Any], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook1.py:15:16-75: assert_type(Parameters[Unknown], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook1.py:16:16-73: assert_type(Sequences[Any], Sequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook1.py:16:16-73: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland.hland_model.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook1.py:17:16-72: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook1.py:17:16-72: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:13:16-33: assert_type(Parameters[Any], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:13:16-33: assert_type(Parameters[Unknown], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:18:16-33: assert_type(Parameters[Any], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:18:16-33: assert_type(Parameters[Unknown], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:23:16-31: assert_type(Parameters[Any], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:23:16-31: assert_type(Parameters[Unknown], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:28:16-32: assert_type(Parameters[Any], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:28:16-32: assert_type(Parameters[Unknown], Parameters[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:35:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:35:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:36:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:36:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:40:16-33: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:40:16-33: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:41:16-33: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:41:16-33: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:45:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:45:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:46:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:46:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:50:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:50:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:51:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:51:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:55:16-30: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:55:16-30: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:59:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:59:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:60:16-32: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:60:16-32: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:64:16-33: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:64:16-33: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:65:16-33: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:65:16-33: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:69:16-35: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:69:16-35: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:70:16-35: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:70:16-35: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:74:16-35: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:74:16-35: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:75:16-35: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:75:16-35: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:79:16-33: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:79:16-33: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
- ERROR hydpy/tests/plugin/check_variables_hook2.py:80:16-33: assert_type(Sequences[Any], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]
+ ERROR hydpy/tests/plugin/check_variables_hook2.py:80:16-33: assert_type(Sequences[Unknown], Sequences[hydpy.models.hland_96.Model]) failed [assert-type]

dd-trace-py (https://github.com/DataDog/dd-trace-py)
- ERROR ddtrace/appsec/_utils.py:187:16-43: Returned type `Any | None` is not assignable to declared return type `int | str` [bad-return]
- ERROR ddtrace/contrib/internal/unittest/patch.py:650:25-37: Object of class `NoneType` has no attribute `trace` [missing-attribute]
- ERROR ddtrace/contrib/internal/unittest/patch.py:692:24-42: Object of class `NoneType` has no attribute `_start_span` [missing-attribute]
- ERROR ddtrace/contrib/internal/unittest/patch.py:736:23-41: Object of class `NoneType` has no attribute `_start_span` [missing-attribute]
- ERROR ddtrace/contrib/internal/unittest/patch.py:772:12-30: Object of class `NoneType` has no attribute `_start_span` [missing-attribute]
- ERROR ddtrace/internal/ci_visibility/recorder.py:943:16-115: Returned type `str | Any | None` is not assignable to declared return type `str` [bad-return]
- ERROR ddtrace/internal/coverage/instrumentation_py3_11.py:391:55-67: Argument `Unknown | None` is not assignable to parameter `end` with type `Instruction` in function `Branch.__init__` [bad-argument-type]
- ERROR ddtrace/internal/coverage/instrumentation_py3_11.py:392:9-29: Object of class `NoneType` has no attribute `targets` [missing-attribute]
- ERROR ddtrace/internal/sampling.py:174:85-99: Argument `Any | None` is not assignable to parameter `max_per_second` with type `int` in function `SpanSamplingRule.__init__` [bad-argument-type]
- ERROR ddtrace/llmobs/_integrations/langchain.py:847:16-72: Returned type `tuple[tuple[Unknown, Unknown, Unknown | None], str]` is not assignable to declared return type `tuple[tuple[int, int, int], str | None]` [bad-return]
- ERROR ddtrace/llmobs/_integrations/utils.py:314:94-101: Type `None` is not iterable [not-iterable]

poetry (https://github.com/python-poetry/poetry)
- ERROR src/poetry/console/commands/add.py:159:25-44: Object of class `NoneType` has no attribute `get` [missing-attribute]
- ERROR src/poetry/console/commands/add.py:170:17-50: `in` is not supported between `Literal['dependencies']` and `None` [not-iterable]
- ERROR src/poetry/console/commands/add.py:171:20-62: `in` is not supported between `Literal['optional-dependencies']` and `None` [not-iterable]
- ERROR src/poetry/console/commands/add.py:175:39-58: Object of class `NoneType` has no attribute `get` [missing-attribute]
- ERROR src/poetry/console/commands/add.py:179:39-58: Object of class `NoneType` has no attribute `get` [missing-attribute]
- ERROR src/poetry/console/commands/add.py:366:20-66: `not in` is not supported between `Literal['optional-dependencies']` and `None` [not-iterable]
- ERROR src/poetry/console/commands/add.py:367:21-61: Cannot set item in `None` [unsupported-operation]
- ERROR src/poetry/console/commands/add.py:368:36-76: `None` is not subscriptable [unsupported-operation]
- ERROR src/poetry/console/commands/add.py:369:21-61: `None` is not subscriptable [unsupported-operation]
- ERROR src/poetry/console/commands/add.py:370:18-55: `not in` is not supported between `Literal['dependencies']` and `None` [not-iterable]
- ERROR src/poetry/console/commands/add.py:371:17-48: Cannot set item in `None` [unsupported-operation]
- ERROR src/poetry/installation/executor.py:378:46-59: Object of class `NoneType` has no attribute `is_verbose` [missing-attribute]
- ERROR src/poetry/installation/executor.py:387:21-34: Object of class `NoneType` has no attribute `write_line` [missing-attribute]
- ERROR src/poetry/installation/executor.py:388:21-34: Object of class `NoneType` has no attribute `write_line` [missing-attribute]
- ERROR src/poetry/installation/executor.py:389:21-34: Object of class `NoneType` has no attribute `write_line` [missing-attribute]
- ERROR src/poetry/puzzle/solver.py:502:51-504:28: Object of class `NoneType` has no attribute `union` [missing-attribute]

discord.py (https://github.com/Rapptz/discord.py)
- ERROR discord/abc.py:1224:25-37: Object of class `NoneType` has no attribute `id` [missing-attribute]
- ERROR discord/guild.py:3375:23-95: `EntityType | Any | None` is not assignable to variable `entity_type` with type `EntityType` [bad-assignment]
- ERROR discord/player.py:256:13-22: Object of class `NoneType` has no attribute `kill` [missing-attribute]
- ERROR discord/player.py:261:29-38: Object of class `NoneType` has no attribute `poll` [missing-attribute]
- ERROR discord/player.py:269:17-33: Object of class `NoneType` has no attribute `communicate` [missing-attribute]
- ERROR discord/scheduled_event.py:492:23-95: `EntityType | Any | None` is not assignable to variable `entity_type` with type `EntityType` [bad-assignment]
- ERROR discord/state.py:265:40-90: `Any | None` is not assignable to attribute `raw_presence_flag` with type `bool` [bad-assignment]
- ERROR discord/ui/container.py:160:17-54: Object of class `NoneType` has no attribute `_children` [missing-attribute]
- ERROR discord/ui/view.py:281:21-58: Object of class `NoneType` has no attribute `_children` [missing-attribute]

cloud-init (https://github.com/canonical/cloud-init)
- ERROR cloudinit/config/cc_rsyslog.py:165:20-34: Object of class `NoneType` has no attribute `strip` [missing-attribute]
- ERROR cloudinit/sources/DataSourceCloudCIX.py:90:16-34: Returned type `Literal[b''] | Unknown | None` is not assignable to declared return type `str | None` [bad-return]
- ERROR cloudinit/sources/DataSourceLXD.py:356:53-63: Argument `Literal[b''] | Unknown` is not assignable to parameter `url` with type `str` in function `_get_json_response` [bad-argument-type]
- ERROR cloudinit/sources/DataSourceLXD.py:364:26-42: Argument `Literal[b''] | Unknown` is not assignable to parameter `url` with type `str` in function `_do_request` [bad-argument-type]
- ERROR cloudinit/sources/DataSourceLXD.py:406:30-38: Argument `Literal[b''] | Unknown` is not assignable to parameter `url` with type `str` in function `_do_request` [bad-argument-type]
- ERROR cloudinit/sources/DataSourceLXD.py:412:55-58: Argument `Literal[b''] | Unknown` is not assignable to parameter `url` with type `str` in function `_get_json_response` [bad-argument-type]
- ERROR cloudinit/sources/helpers/ec2.py:119:39-42: Argument `Literal['/']` is not assignable to parameter `suffix` with type `Buffer | tuple[Buffer, ...]` in function `bytes.endswith` [bad-argument-type]
- ERROR cloudinit/sources/helpers/ec2.py:120:17-33: `+=` is not supported between `Literal[b'']` and `Literal['/']` [unsupported-operation]
- ERROR cloudinit/sources/helpers/openstack.py:518:9-19: Class member `MetadataReader._path_join` overrides parent class `BaseReader` in an inconsistent manner [bad-override]
- ERROR cloudinit/url_helper.py:513:26-40: `str | Unknown` is not assignable to TypedDict key `method` with type `Literal[b''] | bool` [bad-typed-dict-key]
- ERROR cloudinit/url_helper.py:516:35-42: `tuple[Unknown, ...]` is not assignable to TypedDict key `timeout` with type `Literal[b''] | bool` [bad-typed-dict-key]
- ERROR cloudinit/url_helper.py:518:35-57: `float` is not assignable to TypedDict key `timeout` with type `Literal[b''] | bool` [bad-typed-dict-key]
- ERROR cloudinit/url_helper.py:548:31-38: `dict[Unknown, Unknown] | Unknown` is not assignable to TypedDict key `headers` with type `Literal[b''] | bool` [bad-typed-dict-key]
- ERROR cloudinit/url_helper.py:554:65-70: Object of class `bool` has no attribute `get`
+ ERROR cloudinit/url_helper.py:554:65-70: Object of class `bool` has no attribute `get` [missing-attribute]
- Object of class `bytes` has no attribute `get` [missing-attribute]
- ERROR cloudinit/url_helper.py:558:25-50: Cannot set item in `Literal[b'']` [unsupported-operation]
- ERROR cloudinit/url_helper.py:590:35-38: Argument `Literal[b'']` is not assignable to parameter `url` with type `str | None` in function `UrlError.__init__` [bad-argument-type]
- ERROR cloudinit/url_helper.py:596:21-24: Argument `Literal[b'']` is not assignable to parameter `url` with type `str | None` in function `UrlError.__init__` [bad-argument-type]
- ERROR cloudinit/url_helper.py:600:41-44: Argument `Literal[b'']` is not assignable to parameter `url` with type `str | None` in function `UrlError.__init__` [bad-argument-type]
- ERROR tests/unittests/sources/test_cloudcix.py:309:17-30: Argument `Literal[b''] | Unknown` is not assignable to parameter `base_url` with type `str` in function `cloudinit.sources.DataSourceCloudCIX.read_metadata` [bad-argument-type]
- ERROR tests/unittests/sources/test_cloudcix.py:333:17-30: Argument `Literal[b''] | Unknown` is not assignable to parameter `base_url` with type `str` in function `cloudinit.sources.DataSourceCloudCIX.read_metadata` [bad-argument-type]

core (https://github.com/home-assistant/core)
- ERROR homeassistant/components/airos/config_flow.py:354:38-66: Argument `dict[str, Any | None]` is not assignable to parameter `description_placeholders` with type `Mapping[str, str] | None` in function `homeassistant.config_entries.ConfigFlow.async_show_form` [bad-argument-type]
- ERROR homeassistant/components/application_credentials/__init__.py:144:16-27: Returned type `dict[Unknown | None, ClientCredential]` is not assignable to declared return type `dict[str, ClientCredential]` [bad-return]
- ERROR homeassistant/components/aprilaire/entity.py:37:27-39:69: `Any | None` is not assignable to `bool` [bad-assignment]
- ERROR homeassistant/components/aprilaire/entity.py:41:25-75: `Any | None` is not assignable to `bool` [bad-assignment]
- ERROR homeassistant/components/bayesian/config_flow.py:558:31-83: Argument `Any | None` is not assignable to parameter `title` with type `UndefinedType | str` in function `homeassistant.config_entries.ConfigSubentryFlow.async_update_and_abort` [bad-argument-type]
- ERROR homeassistant/components/ezviz/select.py:79:12-34: Object of class `NoneType` has no attribute `name` [missing-attribute]
- ERROR homeassistant/components/fritz/services.py:65:17-73: Argument `Any | None` is not assignable to parameter `length` with type `int` in function `homeassistant.components.fritz.coordinator.FritzBoxTools.async_trigger_set_guest_password` [bad-argument-type]
- ERROR homeassistant/components/gogogate2/config_flow.py:96:54-59: Argument `Any | None` is not assignable to parameter `title` with type `str` in function `homeassistant.config_entries.ConfigFlow.async_create_entry` [bad-argument-type]
- ERROR homeassistant/components/group/__init__.py:237:17-55: Argument `Any | None` is not assignable to parameter `name` with type `str` in function `homeassistant.components.group.entity.Group.async_create_group` [bad-argument-type]
- ERROR homeassistant/components/hassio/backup.py:138:14-140:10: Argument `Unknown | None` is not assignable to parameter `date` with type `str` in function `homeassistant.components.backup.models.AgentBackup.__init__` [bad-argument-type]
- ERROR homeassistant/components/hassio/coordinator.py:392:46-80: Argument `dict_values[Unknown, dict[str | Any, Unknown | None]]` is not assignable to parameter `addons` with type `list[dict[str, Any]]` in function `async_register_addons_in_dev_reg` [bad-argument-type]
+ ERROR homeassistant/components/hassio/coordinator.py:392:46-80: Argument `dict_values[Unknown, dict[str | Any, Unknown]]` is not assignable to parameter `addons` with type `list[dict[str, Any]]` in function `async_register_addons_in_dev_reg` [bad-argument-type]
- ERROR homeassistant/components/homeassistant/__init__.py:433:46-60: Argument `dict[str, Any | None]` is not assignable to parameter `translation_placeholders` with type `dict[str, str] | None` in function `homeassistant.helpers.issue_registry.async_create_issue` [bad-argument-type]
- ERROR homeassistant/components/hydrawise/sensor.py:143:16-49: Object of class `NoneType` has no attribute `total_use` [missing-attribute]
- ERROR homeassistant/components/hyperion/camera.py:160:20-66: Object of class `NoneType` has no attribute `get` [missing-attribute]
- ERROR homeassistant/components/knx/number.py:123:39-126:10: `Any | None` is not assignable to attribute `_attr_native_max_value` with type `float` [bad-assignment]
- ERROR homeassistant/components/knx/number.py:127:39-130:10: `Any | None` is not assignable to attribute `_attr_native_min_value` with type `float` [bad-assignment]
- ERROR homeassistant/components/knx/number.py:132:34-135:10: `Any | None` is not assignable to attribute `_attr_native_step` with type `float` [bad-assignment]
- ERROR homeassistant/components/knx/number.py:139:46-78: No matching overload found for function `max` called with arguments: (Literal[0], float) [no-matching-overload]
- ERROR homeassistant/components/litejet/light.py:110:73-85: No matching overload found for function `int.__new__` called with arguments: (type[int], Any | None) [no-matching-overload]
- ERROR homeassistant/components/mjpeg/config_flow.py:162:27-80: Argument `Any | None` is not assignable to parameter `title` with type `str` in function `homeassistant.config_entries.ConfigFlow.async_create_entry` [bad-argument-type]
- ERROR homeassistant/components/modbus/modbus.py:179:16-46: Returned type `tuple[ModbusHub | Unknown, Any | None, Any]` is not assignable to declared return type `tuple[ModbusHub, int, int]` [bad-return]
- ERROR homeassistant/components/nfandroidtv/notify.py:105:35-107:22: No matching overload found for function `int.__new__` called with arguments: (type[int], Unknown | None) [no-matching-overload]
- ERROR homeassistant/components/omnilogic/sensor.py:136:13-138:14: Invalid key for TypedDict `<anonymous>`, got `None` [bad-typed-dict-key]
- ERROR homeassistant/components/orvibo/config_flow.py:204:19-67: Argument `Any | None` is not assignable to parameter `title` with type `str` in function `homeassistant.config_entries.ConfigFlow.async_create_entry` [bad-argument-type]
- ERROR homeassistant/components/shelly/config_flow.py:1249:57-61: Argument `Any | None` is not assignable to parameter `port` with type `int` in function `ShellyConfigFlow._async_get_info` [bad-argument-type]
- ERROR homeassistant/components/snmp/switch.py:261:29-74: Expected a callable, got `None` [not-callable]
- ERROR homeassistant/components/switchbot/__init__.py:227:22-25: Expected a callable, got `None` [not-callable]
- ERROR homeassistant/components/switchbot/__init__.py:241:18-21: Expected a callable, got `None` [not-callable]
- ERROR homeassistant/components/volumio/config_flow.py:88:30-58: `Any | None` is not assignable to attribute `_name` with type `str` [bad-assignment]
- ERROR homeassistant/components/yandextts/tts.py:144:71-80: Argument `dict[str, str | Unknown | None]` is not assignable to parameter `params` with type `Mapping[str, Sequence[SupportsInt | float | str] | SupportsInt | float | str] | Sequence[tuple[str, Sequence[SupportsInt | float | str] | SupportsInt | float | str]] | str | None` in function `aiohttp.client.ClientSession.get` [bad-argument-type]
- ERROR homeassistant/core_config.py:143:25-28: Argument `Any | None` is not assignable to parameter `element` with type `str` in function `set.add` [bad-argument-type]
- ERROR homeassistant/helpers/script.py:1041:24-78: Argument `Any | None` is not assignable to parameter `default_message` with type `str` in function `_ScriptRun._step_log` [bad-argument-type]
- ERROR homeassistant/util/hass_dict.pyi:138:16-50: assert_type(dict[int, bool] | dict[Any, Any], dict[int, bool]) failed [assert-type]
+ ERROR homeassistant/util/hass_dict.pyi:138:16-50: assert_type(dict[int, bool] | dict[Unknown, Unknown], dict[int, bool]) failed [assert-type]
- ERROR homeassistant/util/hass_dict.pyi:140:16-46: assert_type(set[str] | set[Any], set[str]) failed [assert-type]
+ ERROR homeassistant/util/hass_dict.pyi:140:16-46: assert_type(set[str] | set[Unknown], set[str]) failed [assert-type]

pyodide (https://github.com/pyodide/pyodide)
- ERROR src/tests/test_static_typing.py:74:20-76: assert_type(list[Any], list[tuple[int, str]]) failed [assert-type]
+ ERROR src/tests/test_static_typing.py:74:20-76: assert_type(list[Unknown], list[tuple[int, str]]) failed [assert-type]

zulip (https://github.com/zulip/zulip)
- ERROR tools/lib/capitalization.py:289:5-290:64: Pyrefly detected conflicting types while breaking a dependency cycle: `str | Unknown` is not assignable to `Buffer`. Adding explicit type annotations might possibly help. [bad-assignment]
- ERROR zerver/lib/message_cache.py:389:32-86: Argument `Any | None` is not assignable to parameter `rendering_realm_id` with type `int` in function `MessageDict.build_message_dict` [bad-argument-type]
- ERROR zerver/middleware.py:494:66-73: Argument `Any | None` is not assignable to parameter `urlconf` with type `str` in function `django.conf.urls.i18n.is_language_prefix_patterns_used` [bad-argument-type]

aioredis (https://github.com/aio-libs/aioredis)
- ERROR aioredis/client.py:164:31-51: Cannot set item in `dict[str, str]` [unsupported-operation]

beartype (https://github.com/beartype/beartype)
- ERROR beartype/_check/convert/_reduce/_pep/redpep484612646.py:323:13-25: Argument `HintPep646692UnpackedType | Iota | TypeVar | Unknown | None` is not assignable to parameter `hint` with type `TypeVar` in function `beartype._util.hint.pep.proposal.pep484.pep484typevar.get_hint_pep484_typevar_bounded_constraints_or_none` [bad-argument-type]
+ ERROR beartype/_check/convert/_reduce/_pep/redpep484612646.py:323:13-25: Argument `HintPep646692UnpackedType | Iota | TypeVar | Unknown` is not assignable to parameter `hint` with type `TypeVar` in function `beartype._util.hint.pep.proposal.pep484.pep484typevar.get_hint_pep484_typevar_bounded_constraints_or_none` [bad-argument-type]

mkosi (https://github.com/systemd/mkosi)
- ERROR mkosi/config.py:5993:29-53: Argument `Any | None` is not assignable to parameter `file_id` with type `str` in function `Drive.__init__` [bad-argument-type]

porcupine (https://github.com/Akuli/porcupine)
- ERROR porcupine/plugins/highlight/tree_sitter_highlighter.py:83:20-72: Returned type `Unknown | None` is not assignable to declared return type `str` [bad-return]

pydantic (https://github.com/pydantic/pydantic)
- ERROR pydantic/_internal/_generate_schema.py:320:23-72: `None` is not subscriptable [unsupported-operation]
- ERROR pydantic/v1/generics.py:124:25-132:14: No matching overload found for function `pydantic.v1.main.create_model` called with arguments: (str, __module__=str, __base__=tuple[type[GenericModelT], ...], __config__=None, __validators__=dict[str, classmethod[Any, Ellipsis, Any] | classmethod[Any, Ellipsis, Unknown]], __cls_kwargs__=None, **dict[str, tuple[DeferredType, FieldInfo]]) [no-matching-overload]
+ ERROR pydantic/v1/generics.py:124:25-132:14: No matching overload found for function `pydantic.v1.main.create_model` called with arguments: (str, __module__=str, __base__=Unknown, __config__=None, __validators__=dict[str, classmethod[Any, Ellipsis, Any] | classmethod[Any, Ellipsis, Unknown]], __cls_kwargs__=None, **dict[str, tuple[DeferredType, FieldInfo]]) [no-matching-overload]

prefect (https://github.com/PrefectHQ/prefect)
- ERROR src/prefect/server/orchestration/core_policy.py:72:9-17: Class member `CoreFlowPolicy.priority` overrides parent class `FlowRunOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/core_policy.py:114:9-17: Class member `CoreTaskPolicy.priority` overrides parent class `TaskRunOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/core_policy.py:152:9-17: Class member `ClientSideTaskOrchestrationPolicy.priority` overrides parent class `TaskRunOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/core_policy.py:188:9-17: Class member `BackgroundTaskPolicy.priority` overrides parent class `TaskRunOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/core_policy.py:221:9-17: Class member `MinimalFlowPolicy.priority` overrides parent class `FlowRunOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/core_policy.py:236:9-17: Class member `MarkLateRunsPolicy.priority` overrides parent class `FlowRunOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/core_policy.py:250:9-17: Class member `MinimalTaskPolicy.priority` overrides parent class `TaskRunOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/global_policy.py:63:9-17: Class member `GlobalFlowPolicy.priority` overrides parent class `BaseOrchestrationPolicy` in an inconsistent manner [bad-override]
- ERROR src/prefect/server/orchestration/global_policy.py:96:9-17: Class member `GlobalTaskPolicy.priority` overrides parent class `BaseOrchestrationPolicy` in an inconsistent manner [bad-override]

mitmproxy (https://github.com/mitmproxy/mitmproxy)
- ERROR mitmproxy/flowfilter.py:266:40-66: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:268:41-68: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:280:40-66: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:291:41-68: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:307:34-43: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:313:34-43: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:317:67-81: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:324:44-69: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:326:45-71: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:343:34-43: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:347:59-73: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:354:44-69: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:370:34-43: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:374:63-77: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/flowfilter.py:381:45-71: No matching overload found for function `re.Pattern.search` called with arguments: (bytes) [no-matching-overload]
- ERROR mitmproxy/tls.py:107:16-19: Returned type `list[tuple[Unknown, Any | None]]` is not assignable to declared return type `list[tuple[int, bytes]]` [bad-return]

streamlit (https://github.com/streamlit/streamlit)
- ERROR lib/streamlit/vendor/pympler/asizeof.py:1528:17-20: No matching overload found for function `iter` called with arguments: (object | tuple[()] | Any) [no-matching-overload]
+ ERROR lib/streamlit/vendor/pympler/asizeof.py:1528:17-20: No matching overload found for function `iter` called with arguments: (object | tuple[()] | Unknown) [no-matching-overload]
- ERROR lib/streamlit/vendor/pympler/asizeof.py:2107:22-41: Argument `object | tuple[()] | Any` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `tuple.__new__` [bad-argument-type]
+ ERROR lib/streamlit/vendor/pympler/asizeof.py:2107:22-41: Argument `object | tuple[()] | Unknown` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `tuple.__new__` [bad-argument-type]
- ERROR lib/streamlit/vendor/pympler/asizeof.py:2310:20-43: No matching overload found for function `sum` called with arguments: (object | tuple[()] | Any) [no-matching-overload]
+ ERROR lib/streamlit/vendor/pympler/asizeof.py:2310:20-43: No matching overload found for function `sum` called with arguments: (object | tuple[()] | Unknown) [no-matching-overload]
- ERROR lib/tests/streamlit/typing/button_types.py:43:16-42: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:43:16-42: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:44:16-59: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:44:16-59: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:45:16-51: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:45:16-51: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:48:16-57: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:48:16-57: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:49:16-61: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:49:16-61: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:50:16-59: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:50:16-59: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:53:16-64: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:53:16-64: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:54:16-49: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:54:16-49: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:57:16-48: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:57:16-48: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:58:16-66: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:58:16-66: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:59:16-54: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:59:16-54: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:60:16-49: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:60:16-49: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:63:16-57: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:63:16-57: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:64:16-57: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:64:16-57: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:67:16-64: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:67:16-64: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:68:16-64: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:68:16-64: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:69:16-56: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:69:16-56: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:72:16-56: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:72:16-56: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:73:16-61: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:73:16-61: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:74:16-57: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:74:16-57: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:83:16-64: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:83:16-64: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:84:16-86: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:84:16-86: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:85:16-87:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:85:16-87:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:88:16-60: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:88:16-60: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:91:16-106:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:91:16-106:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:113:16-72: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:113:16-72: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:114:16-75: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:114:16-75: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:120:16-65: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:120:16-65: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:121:16-67: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:121:16-67: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:122:16-64: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:122:16-64: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:131:16-71: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:131:16-71: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:132:16-71: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:132:16-71: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:135:16-89: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:135:16-89: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:136:16-86: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:136:16-86: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:137:16-142:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:137:16-142:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:145:16-85: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:145:16-85: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:146:16-86: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:146:16-86: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:147:16-89: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:147:16-89: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:148:16-82: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:148:16-82: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:151:16-83: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:151:16-83: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:152:16-85: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:152:16-85: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:153:16-84: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:153:16-84: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:156:16-84: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:156:16-84: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:157:16-84: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:157:16-84: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:158:16-78: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:158:16-78: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:161:16-77: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:161:16-77: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:162:16-82: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:162:16-82: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:163:16-85: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:163:16-85: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:164:16-81: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:164:16-81: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:165:16-76: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:165:16-76: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:166:16-86: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:166:16-86: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:169:16-187:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:169:16-187:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:258:16-84: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:258:16-84: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:259:16-88: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:259:16-88: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:260:16-268:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:260:16-268:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:269:16-277:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:269:16-277:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:280:16-296:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:280:16-296:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:362:16-44: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:362:16-44: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:363:16-52: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:363:16-52: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:366:16-70: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:366:16-70: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:367:16-61: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:367:16-61: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:368:16-62: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:368:16-62: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:371:16-76: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:371:16-76: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:372:16-63: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:372:16-63: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:375:16-68: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:375:16-68: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:376:16-70: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:376:16-70: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:377:16-69: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:377:16-69: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:380:16-62: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:380:16-62: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:381:16-76: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:381:16-76: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:382:16-63: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:382:16-63: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:385:16-67: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:385:16-67: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:386:16-68: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:386:16-68: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:389:16-69: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:389:16-69: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:390:16-69: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:390:16-69: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:391:16-63: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:391:16-63: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:394:16-70: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:394:16-70: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:395:16-75: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:395:16-75: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:396:16-67: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:396:16-67: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:399:16-74: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:399:16-74: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:400:16-402:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:400:16-402:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:403:16-408:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:403:16-408:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:409:16-67: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:409:16-67: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/button_types.py:412:16-427:6: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/button_types.py:412:16-427:6: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:32:16-46: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:32:16-46: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:33:16-46: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:33:16-46: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:34:16-47: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:34:16-47: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:35:16-52: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:35:16-52: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:36:16-57: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:36:16-57: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:37:16-52: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:37:16-52: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:38:16-54: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:38:16-54: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:39:16-62: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:39:16-62: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:41:16-66: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:41:16-66: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:42:16-66: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:42:16-66: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:43:16-67: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:43:16-67: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:44:16-72: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:44:16-72: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:45:16-77: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:45:16-77: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:46:16-72: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:46:16-72: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:47:16-74: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:47:16-74: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:48:16-82: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:48:16-82: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:58:16-50: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:58:16-50: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:59:16-50: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:59:16-50: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:60:16-51: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:60:16-51: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:61:16-56: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:61:16-56: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:62:16-61: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:62:16-61: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:63:16-56: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:63:16-56: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:64:16-58: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:64:16-58: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:65:16-66: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:65:16-66: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:67:16-70: assert_type(Any, bool) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:67:16-70: assert_type(Unknown, bool) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:68:16-70: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:68:16-70: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:69:16-71: assert_type(Any, None) failed [assert-type]
+ ERROR lib/tests/streamlit/typing/cache_types.py:69:16-71: assert_type(Unknown, None) failed [assert-type]
- ERROR lib/tests/streamlit/typing/cache_types.py:70:16-76: assert_type(Any, None) failed [assert-type]

... (truncated 1110 lines) ...

materialize (https://github.com/MaterializeInc/materialize)
- ERROR misc/python/materialize/workload_replay/data.py:336:29-337:50: `*` is not supported between `None` and `float` [unsupported-operation]

paasta (https://github.com/yelp/paasta)
- ERROR paasta_tools/kubernetes_tools.py:1380:20-51: Object of class `NoneType` has no attribute `get` [missing-attribute]
- ERROR paasta_tools/kubernetes_tools.py:1381:23-54: Object of class `NoneType` has no attribute `get` [missing-attribute]
- ERROR paasta_tools/kubernetes_tools.py:1382:34-65: Object of class `NoneType` has no attribute `get` [missing-attribute]
- ERROR paasta_tools/kubernetes_tools.py:2393:13-39: Object of class `NoneType` has no attribute `pod_anti_affinity` [missing-attribute]

hydra-zen (https://github.com/mit-ll-responsible-ai/hydra-zen)
-  INFO tests/annotations/declarations.py:249:16-252:6: revealed type: type[PartialBuilds] [reveal-type]
+  INFO tests/annotations/declarations.py:249:16-252:6: revealed type: Unknown [reveal-type]
-  INFO tests/annotations/declarations.py:253:16-256:6: revealed type: type[PartialBuilds] [reveal-type]
+  INFO tests/annotations/declarations.py:253:16-256:6: revealed type: Unknown [reveal-type]
- ERROR tests/annotations/declarations.py:929:16-932:6: assert_type(StdBuilds[Any], StdBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:934:16-937:6: assert_type(StdBuilds[Any], StdBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:940:16-943:6: assert_type(PBuilds[Any], PBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:944:16-86: assert_type(PBuilds[Any], PBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:945:16-948:6: assert_type(PBuilds[Any], PBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:951:16-954:6: assert_type(FullBuilds[Any] | StdBuilds[Any], FullBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None] | StdBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:956:16-959:6: assert_type(PBuilds[Any] | StdBuilds[Any], PBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None] | StdBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:961:16-966:6: assert_type(PBuilds[Any] | StdBuilds[Any], PBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None] | StdBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:969:16-978:6: assert_type(FullBuilds[Any] | PBuilds[Any] | StdBuilds[Any], FullBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None] | PBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None] | StdBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
- ERROR tests/annotations/declarations.py:980:16-989:6: assert_type(FullBuilds[Any] | PBuilds[Any] | StdBuilds[Any], FullBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None] | PBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None] | StdBuilds[((...) -> Any) | DataClass_ | DictConfig | Enum | ListConfig | Mapping[Any, SupportedPrimitive] | Partial[Any] | Path | PosixPath | Sequence[SupportedPrimitive] | SimpleNamespace | WindowsPath | bool | bytearray | bytes | complex | float | frozenset[SupportedPrimitive] | int | memoryview | range | set[Any] | str | timedelta | EmptyDict | tuple[SupportedPrimitive, ...] | None]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:929:16-932:6: assert_type(StdBuilds[Unknown], StdBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:934:16-937:6: assert_type(StdBuilds[Unknown], StdBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:940:16-943:6: assert_type(PBuilds[Unknown], PBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:944:16-86: assert_type(PBuilds[Unknown], PBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:945:16-948:6: assert_type(PBuilds[Unknown], PBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:951:16-954:6: assert_type(FullBuilds[Unknown] | StdBuilds[Unknown], FullBuilds[SupportedPrimitive] | StdBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:956:16-959:6: assert_type(PBuilds[Unknown] | StdBuilds[Unknown], PBuilds[SupportedPrimitive] | StdBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:961:16-966:6: assert_type(PBuilds[Unknown] | StdBuilds[Unknown], PBuilds[SupportedPrimitive] | StdBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:969:16-978:6: assert_type(FullBuilds[Unknown] | PBuilds[Unknown] | StdBuilds[Unknown], FullBuilds[SupportedPrimitive] | PBuilds[SupportedPrimitive] | StdBuilds[SupportedPrimitive]) failed [assert-type]
+ ERROR tests/annotations/declarations.py:980:16-989:6: assert_type(FullBuilds[Unknown] | PBuilds[Unknown] | StdBuilds[Unknown], FullBuilds[SupportedPrimitive] | PBuilds[SupportedPrimitive] | StdBuilds[SupportedPrimitive]) failed [assert-type]
-  INFO tests/annotations/declarations.py:995:16-56: revealed type: Any [reveal-type]
+  INFO tests/annotations/declarations.py:995:16-56: revealed type: Unknown [reveal-type]

jax (https://github.com/google/jax)
- ERROR jax/_src/lax/control_flow/conditionals.py:182:48-63: Argument `list[Any | Unknown] | Any` is not assignable to parameter `x` with type `Array | TypedNdArray | builtins.bool | numpy.bool | complex | float | int | ndarray | number` in function `jax._src.lax.lax.asarray` [bad-argument-type]
- ERROR jax/experimental/jet.py:468:5-9: Cannot set item in `list[Array | None]` [unsupported-operation]
- ERROR jax/experimental/jet.py:483:3-7: Cannot set item in `list[Array | None]` [unsupported-operation]
- ERROR jax/experimental/jet.py:497:5-9: Cannot set item in `list[Array | None]` [unsupported-operation]
- ERROR jax/experimental/jet.py:541:5-9: Cannot set item in `list[Array | None]` [unsupported-operation]
- ERROR jax/experimental/jet.py:583:5-9: Cannot set item in `list[Array | None]` [unsupported-operation]
- ERROR jax/experimental/jet.py:630:5-9: Cannot set item in `list[None]` [unsupported-operation]
- ERROR jax/experimental/mosaic/gpu/core.py:177:21-66: Object of class `NoneType` has no attribute `value` [missing-attribute]
- ERROR jax/experimental/mosaic/gpu/fragmented_array.py:2447:7-2452:57: Pyrefly detected conflicting types while breaking a dependency cycle: `ndarray | Unknown | None` is not assignable to `None`. Adding explicit type annotations might possibly help. [bad-assignment]
- ERROR jax/experimental/mosaic/gpu/fragmented_array.py:2456:35-47: Object of class `ndarray` has no attribute `type` [missing-attribute]
- ERROR jax/experimental/mosaic/gpu/fragmented_array.py:2468:37-49: Object of class `ndarray` has no attribute `type` [missing-attribute]
- ERROR jax/experimental/mosaic/gpu/fragmented_array.py:2994:21-29: Object of class `ndarray` has no attribute `type` [missing-attribute]

optuna (https://github.com/optuna/optuna)
- ERROR optuna/_gp/search_space.py:109:42-113:22: No matching overload found for function `numpy._core.multiarray.arange` called with arguments: (Any, Unknown, ndarray) [no-matching-overload]
- ERROR optuna/_gp/search_space.py:114:43-63: Argument `ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]]` is not assignable to parameter `value` with type `int` in function `enum.IntEnum.__new__` [bad-argument-type]
- ERROR optuna/_gp/search_space.py:116:26-40: Argument `ndarray` is not assignable to parameter `step` with type `float` in function `_normalize_one_param` [bad-argument-type]
- ERROR optuna/_hypervolume/hssp.py:95:26-52: No matching overload found for function `max` called with arguments: (ndarray, @_) [no-matching-overload]
- ERROR optuna/_transform.py:160:55-75: Argument `signedinteger[_NBitIntP] | Unknown` is not assignable to parameter `param_value_in_internal_repr` with type `float` in function `optuna.distributions.CategoricalDistribution.to_external_repr` [bad-argument-type]
- ERROR optuna/testing/storages.py:122:44-124:14: `Any | None` is not assignable to attribute `_redis` with type `Redis[bytes]` [bad-assignment]
- ERROR tutorial/20_recipes/013_wilcoxon_pruner.py:87:21-47: Argument `signedinteger[_NBitIntP]` is not assignable to parameter `object` with type `int` in function `list.append` [bad-argument-type]

static-frame (https://github.com/static-frame/static-frame)
- ERROR static_frame/core/series.py:2268:23-39: Yielded type `tuple[ndarray[tuple[Any, ...], Any] | tuple[Any, ...], ndarray[tuple[Any, ...], Any] | Self@Series]` is not assignable to declared yield type `tuple[TLabel, Series[TVIndex, TVDtype] | ndarray[Any, Any]]` [invalid-yield]
- ERROR static_frame/core/store_filter.py:262:13-273:52: Pyrefly detected conflicting types while breaking a dependency cycle: `ndarray[Any, dtype[object_ | Any]] | None` is not assignable to `None`. Adding explicit type annotations might possibly help. [bad-assignment]
- ERROR static_frame/core/type_blocks.py:284:19-54: Yielded type `tuple[ndarray[tuple[Any, ...], Any], slice[Any, Any, Any], TypeBlocks | ndarray[Any, Any]]` is not assignable to declared yield type `tuple[TLabel, slice[Any, Any, Any], TypeBlocks | ndarray[Any, Any]]` [invalid-yield]
- ERROR static_frame/core/type_blocks.py:292:19-54: Yielded type `tuple[ndarray[tuple[Any, ...], Any], slice[Any, Any, Any], TypeBlocks | ndarray[Any, Any]]` is not assignable to declared yield type `tuple[TLabel, slice[Any, Any, Any], TypeBlocks | ndarray[Any, Any]]` [invalid-yield]
- ERROR static_frame/core/yarn.py:323:13-45: Object of class `ndarray` has no attribute `_persist_loc` [missing-attribute]
- ERROR static_frame/core/yarn.py:327:13-45: Object of class `ndarray` has no attribute `_persist_loc` [missing-attribute]
- ERROR static_frame/core/yarn.py:479:24-56: Object of class `ndarray` has no attribute `_extract_loc` [missing-attribute]
- ERROR static_frame/core/yarn.py:544:19-51: Object of class `ndarray` has no attribute `_extract_loc` [missing-attribute]
- ERROR static_frame/core/yarn.py:733:33-65: Object of class `ndarray` has no attribute `_extract_loc` [missing-attribute]
- ERROR static_frame/core/yarn.py:745:24-56: Object of class `ndarray` has no attribute `_extract_loc` [missing-attribute]
- ERROR static_frame/core/yarn.py:782:24-41: Object of class `ndarray` has no attribute `_values_mutable` [missing-attribute]
- ERROR static_frame/core/yarn.py:819:21-38: Object of class `ndarray` has no attribute `_values_mutable` [missing-attribute]
- ERROR static_frame/core/yarn.py:852:17-34: Object of class `ndarray` has no attribute `_values_mutable` [missing-attribute]
- ERROR static_frame/core/yarn.py:883:27-38: Object of class `ndarray` has no attribute `inventory` [missing-attribute]
- ERROR static_frame/core/yarn.py:884:19-26: Object of class `ndarray` has no attribute `_name` [missing-attribute]

cwltool (https://github.com/common-workflow-language/cwltool)
- ERROR cwltool/checker.py:462:47-54: Cannot set item in `MutableMapping[str, MutableMapping[str, CWLOutputType] | MutableSequence[CWLOutputType] | bool | float | int | str | None]` [unsupported-operation]
- ERROR cwltool/command_line_tool.py:853:78-98: `dict[str, list[MutableMapping[str, CWLOutputType] | MutableSequence[CWLOutputType] | bool | float | int | str] | list[Any]]` is not assignable to `dict[str, MutableMapping[str, MutableMapping[str, CWLOutputType] | MutableSequence[CWLOutputType] | bool | float | int | str | None] | MutableSequence[int | str]]` [bad-assignment]

pip (https://github.com/pypa/pip)
- ERROR src/pip/_internal/network/auth.py:336:16-54: Returned type `Literal[b'']` is not assignable to declared return type `str | None` [bad-return]
- ERROR src/pip/_vendor/pygments/lexer.py:918:9-23: Class member `ProfilingRegexLexerMeta._process_regex` overrides parent class `RegexLexerMeta` in an inconsistent manner [bad-param-name-override]

starlette (https://github.com/encode/starlette)
- ERROR starlette/requests.py:124:20-33: Object of class `NoneType` has no attribute `endswith` [missing-attribute]
- ERROR starlette/requests.py:125:17-28: `+=` is not supported between `None` and `Literal['/']` [unsupported-operation]

colour (https://github.com/colour-science/colour)
- ERROR colour/io/luts/lut.py:1433:23-1438:18: No matching overload found for function `numpy.lib._arraypad_impl.pad` called with arguments: (Unknown, tuple[Literal[0], signedinteger[_16Bit] | signedinteger[_32Bit] | signedinteger[_64Bit] | signedinteger[_8Bit] | unsignedinteger[_16Bit] | unsignedinteger[_32Bit] | unsignedinteger[_64Bit] | unsignedinteger[_8Bit]], mode=Literal['constant'], constant_values=float) [no-matching-overload]
- ERROR colour/io/luts/lut.py:2097:12-29: `>` is not supported between `None` and `Literal[129]` [unsupported-operation]
- ERROR colour/io/luts/lut.py:2119:37-2121:14: No matching overload found for function `numpy._core.fromnumeric.reshape` called with arguments: (Any, tuple[Any | None, Any | None, Any | None, Literal[3]]) [no-matching-overload]
- ERROR colour/io/luts/lut.py:2135:37-2138:14: No matching overload found for function `numpy._core.fromnumeric.reshape` called with arguments: (Any, tuple[Any | None, Any | None, Any | None, Literal[3]]) [no-matching-overload]
+ ERROR colour/io/luts/tests/test_lut.py:638:13-642:14: Argument `list[_NestedSequence[bytes | complex | str] | bytes | complex | ndarray[tuple[Any, ...], dtype[float64]] | str]` is not assignable to parameter `a` with type `Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype]] | _SupportsArray[dtype] | bytes | complex | str` in function `colour.utilities.array.tstack` [bad-argument-type]
+ ERROR colour/io/luts/tests/test_lut.py:650:21-654:22: Argument `list[_NestedSequence[bytes | complex | str] | bytes | complex | ndarray[tuple[Any, ...], dtype[float64]] | str]` is not assignable to parameter `a` with type `Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype]] | _SupportsArray[dtype] | bytes | complex | str` in function `colour.utilities.array.tstack` [bad-argument-type]
+ ERROR colour/io/luts/tests/test_lut.py:1190:13-1194:14: Argument `list[_NestedSequence[bytes | complex | str] | bytes | complex | ndarray[tuple[Any, ...], dtype[float64]] | str]` is not assignable to parameter `a` with type `Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype]] | _SupportsArray[dtype] | bytes | complex | str` in function `colour.utilities.array.tstack` [bad-argument-type]
- ERROR colour/notation/munsell.py:2573:13-43: Argument `tuple[Any, Any, Any]` is not assignable to parameter `value` with type `tuple[float, float]` in function `list.index` [bad-argument-type]
+ ERROR colour/notation/munsell.py:2573:13-43: Argument `tuple[Any, Unknown, Any]` is not assignable to parameter `value` with type `tuple[float, float]` in function `list.index` [bad-argument-type]
- ERROR colour/notation/munsell.py:2578:13-45: Argument `tuple[Any, Any, Any]` is not assignable to parameter `value` with type `tuple[float, float]` in function `list.index` [bad-argument-type]
+ ERROR colour/notation/munsell.py:2578:13-45: Argument `tuple[Any, Unknown, Any]` is not assignable to parameter `value` with type `tuple[float, float]` in function `list.index` [bad-argument-type]
+ ERROR colour/notation/tests/test_munsell.py:1734:32-80: Argument `list[_NestedSequence[bytes | complex | str] | bytes | complex | ndarray[tuple[Any, ...], dtype[float64 | floating[_16Bit] | floating[_32Bit]]] | str]` is not assignable to parameter `a` with type `Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype]] | _SupportsArray[dtype] | bytes | complex | str` in function `colour.utilities.array.tstack` [bad-argument-type]
+ ERROR colour/notation/tests/test_munsell.py:1927:32-80: Argument `list[_NestedSequence[bytes | complex | str] | bytes | complex | ndarray[tuple[Any, ...], dtype[float64 | floating[_16Bit] | floating[_32Bit]]] | str]` is not assignable to parameter `a` with type `Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype]] | _SupportsArray[dtype] | bytes | complex | str` in function `colour.utilities.array.tstack` [bad-argument-type]
+ ERROR colour/plotting/colorimetry.py:231:24-45: Argument `list[_NestedSequence[bytes | complex | str] | bytes | complex | ndarray[tuple[Any, ...], dtype[float64 | floating[_16Bit] | floating[_32Bit]]] | ndarray[tuple[Any, ...], dtype[Unknown]] | str]` is not assignable to parameter `a` with type `Buffer | _NestedSequence[bytes | complex | str] | _NestedSequence[_SupportsArray[dtype]] | _SupportsArray[dtype] | bytes | complex | str` in function `colour.utilities.array.tstack` [bad-argument-type]
- ERROR colour/plotting/diagrams.py:451:13-457:14: Argument `ndarray[tuple[int, int, int]]` is not assignable to parameter `segments` with type `Sequence[ArrayLike]` in function `matplotlib.collections.LineCollection.__init__` [bad-argument-type]
- ERROR colour/plotting/diagrams.py:465:13-56: Argument `ndarray[tuple[int, int, int]]` is not assignable to parameter `segments` with type `Sequence[ArrayLike]` in function `matplotlib.collections.LineCollection.__init__` [bad-argument-type]
- ERROR colour/plotting/models.py:419:13-425:14: Argument `ndarray[tuple[int, int, int]]` is not assignable to parameter `segments` with type `Sequence[ArrayLike]` in function `matplotlib.collections.LineCollection.__init__` [bad-argument-type]
- ERROR colour/plotting/temperature.py:233:9-238:10: Argument `ndarray[tuple[int, int, int]]` is not assignable to parameter `segments` with type `Sequence[ArrayLike]` in function `matplotlib.collections.LineCollection.__init__` [bad-argument-type]
- ERROR colour/plotting/temperature.py:479:13-484:14: Argument `ndarray[tuple[int, int, int]]` is not assignable to parameter `segments` with type `Sequence[ArrayLike]` in function `matplotlib.collections.LineCollection.__init__` [bad-argument-type]
- ERROR colour/plotting/temperature.py:500:17-506:18: Argument `ndarray[tuple[int, int, int], dtype[Unknown]]` is not assignable to parameter `segments` with type `Sequence[ArrayLike]` in function `matplotlib.collections.LineCollection.__init__` [bad-argument-type]

sphinx (https://github.com/sphinx-doc/sphinx)
- ERROR sphinx/testing/fixtures.py:106:33-86: `/` is not supported between `Path` and `None` [unsupported-operation]

meson (https://github.com/mesonbuild/meson)
- ERROR mesonbuild/backend/ninjabackend.py:2747:39-46: Argument `list[NinjaCommandArg | str] | list[str]` is not assignable to parameter `command` with type `list[NinjaCommandArg | str]` in function `NinjaRule.__init__` [bad-argument-type]
- ERROR mesonbuild/backend/ninjabackend.py:3869:22-59: `+` is not supported between `list[str]` and `ImmutableListProtocol[str]` [unsupported-operation]
+ ERROR mesonbuild/backend/ninjabackend.py:3869:22-59: `+` is not supported between `list[Unknown]` and `ImmutableListProtocol[str]` [unsupported-operation]
- ERROR mesonbuild/backend/ninjabackend.py:3871:32-69: `+` is not supported between `list[str]` and `ImmutableListProtocol[str]` [unsupported-operation]

... (truncated 60 lines) ...```

@github-actions
Copy link

github-actions bot commented Mar 7, 2026

Primer Diff Classification

❌ 5 regression(s) | ✅ 23 improvement(s) | ➖ 6 neutral | 34 project(s) total

5 regression(s) across pydantic, materialize, pip, colour, archinstall. error kinds: unsupported-operation, no-matching-overload, bad-argument-type. caused by is_consistent(), is_equivalent(). 23 improvement(s) across hydpy, dd-trace-py, poetry, discord.py, cloud-init, core, zulip, aioredis, mkosi, porcupine, prefect, mitmproxy, streamlit, paasta, jax, optuna, static-frame, cwltool, starlette, sphinx, cibuildwheel, scrapy, psycopg.

Project Verdict Changes Error Kinds Root Cause
trio ➖ Neutral +4, -4 assert-type
mypy-protobuf ➖ Neutral +6, -6 assert-type
hydpy ✅ Improvement +61, -58 assert-type, bad-argument-type is_equivalent()
dd-trace-py ✅ Improvement -11 bad-argument-type, bad-return is_equivalent()
poetry ✅ Improvement -16 missing-attribute, not-iterable is_equivalent()
discord.py ✅ Improvement -9 bad-assignment, missing-attribute pyrefly/lib/alt/overload.rs
cloud-init ✅ Improvement +1, -19 bad-argument-type, bad-override is_equivalent()
core ✅ Improvement +3, -34 assert-type, bad-argument-type overload_resolution()
pyodide ➖ Neutral +1, -1 assert-type
zulip ✅ Improvement -3 bad-argument-type, bad-assignment crates/pyrefly_types/src/types.rs
aioredis ✅ Improvement -1 unsupported-operation is_equivalent()
beartype ➖ Neutral +1, -1 bad-argument-type
mkosi ✅ Improvement -1 bad-argument-type crates/pyrefly_types/src/types.rs
porcupine ✅ Improvement -1 bad-return overload_resolution()
pydantic ❌ Regression +1, -2 no-matching-overload, unsupported-operation is_equivalent()
prefect ✅ Improvement -9 bad-override is_equivalent()
mitmproxy ✅ Improvement -16 bad-return, no-matching-overload is_equivalent()
streamlit ✅ Improvement +668, -669 assert-type, bad-argument-type crates/pyrefly_types/src/types.rs
materialize ❌ Regression -1 unsupported-operation crates/pyrefly_types/src/types.rs
paasta ✅ Improvement -4 missing-attribute is_equivalent()
hydra-zen ➖ Neutral +13, -13 assert-type, reveal-type
jax ✅ Improvement -12 bad-argument-type, bad-assignment pyrefly/lib/alt/overload.rs
optuna ✅ Improvement -7 bad-argument-type, bad-assignment is_equivalent()
static-frame ✅ Improvement -15 bad-assignment, invalid-yield transform_types_in_type_variable_positions()
cwltool ✅ Improvement -2 bad-assignment, unsupported-operation pyrefly/lib/alt/overload.rs
pip ❌ Regression -2 bad-param-name-override, bad-return is_equivalent()
starlette ✅ Improvement -2 missing-attribute, unsupported-operation crates/pyrefly_types/src/types.rs
colour ❌ Regression +8, -12 bad-argument-type, no-matching-overload is_equivalent()
sphinx ✅ Improvement -1 unsupported-operation is_equivalent()
meson ➖ Neutral +8, -9 bad-argument-type, bad-return
archinstall ❌ Regression -1 bad-argument-type is_consistent()
cibuildwheel ✅ Improvement -2 unsupported-operation pyrefly/lib/solver/subset.rs
scrapy ✅ Improvement -5 bad-argument-type, no-matching-overload is_equivalent()
psycopg ✅ Improvement +8, -20 assert-type overload_resolution()
Detailed analysis

❌ Regression (5)

pydantic (+1, -2)

This is a regression. The PR made overload resolution stricter by changing from is_consistent to is_equivalent checks, but this creates false positive errors on valid pydantic code. The create_model function calls are legitimate - pydantic's v1 generics code is calling create_model with arguments that include Unknown types (which represent unresolved type parameters), but this is expected behavior in generic type instantiation. The function should accept these arguments. Meanwhile, the removed error was correctly identified as a false positive - the code safely handles the case where tp lacks __mro__ using getattr with a fallback. The net effect is that pyrefly became more restrictive than the established ecosystem standard, flagging valid patterns that mypy/pyright would accept.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs line 590 made overload resolution stricter, causing the new no-matching-overload errors. The changes to type variable handling and materialization in crates/pyrefly_types/src/types.rs and pyrefly/lib/solver/subset.rs fixed the false positive None subscripting error.

materialize (-1)

This is a regression. The removed error was correctly identifying a real bug in the code. The expression child.get('messages_total', child.get('rows', 0)) can return None when the 'messages_total' key exists but has a None value. Multiplying None * factor_initial_data (a float) would cause a runtime TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'. The code should explicitly handle the None case, perhaps with (child.get('messages_total') or child.get('rows', 0)) * factor_initial_data or similar. Pyrefly losing the ability to detect this arithmetic type error represents a loss of useful bug detection capability.
Attribution: The change to materialize() in crates/pyrefly_types/src/types.rs to use transform_types_in_type_variable_positions instead of general transform likely improved type inference, but this inadvertently removed detection of a real arithmetic bug.

pip (-2)

This appears to be a regression. The PR introduced changes to overload resolution and type equivalence checking that made pyrefly more lenient in detecting type mismatches. The removed errors were catching real bugs: 1) Line 336 in auth.py shows urllib.parse.urlunsplit(candidates[0]) returning a Literal[b''] (bytes) when the method signature declares str | None - this is a genuine type violation since bytes and strings are incompatible. 2) Line 918 in lexer.py shows a parameter name override inconsistency in ProfilingRegexLexerMeta._process_regex vs its parent RegexLexerMeta - while not a runtime error, this violates method signature contracts. The PR's changes to use is_equivalent() instead of is_consistent() in overload resolution (line 590 of the diff) and the new equivalence checking logic appear to have made the type checker too permissive, causing it to miss these legitimate type issues.
Attribution: The changes to is_equivalent() in pyrefly/lib/alt/overload.rs and the new equivalence checking logic in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs appear to have made type comparison more lenient, causing pyrefly to miss these legitimate type errors.

colour (+8, -12)

This is a regression. The new errors are false positives where pyrefly is being overly strict about numpy array types. The tstack() function should accept the provided list types, but pyrefly's stricter overload resolution is incorrectly rejecting them. Meanwhile, the removed errors were catching real bugs like tuple arity mismatches (tuple[Any, Any, Any] vs tuple[float, float]) and invalid None comparisons. The net effect is that pyrefly lost the ability to catch genuine type errors while gaining false positive noise in numpy array handling.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs made overload resolution stricter, causing new type mismatches to be detected. The changes to type variable handling and materialization in crates/pyrefly_types/src/types.rs and pyrefly/lib/solver/subset.rs improved type inference, removing some false positive errors.

archinstall (-1)

This error removal represents a regression. The error was correctly identifying a genuine type safety issue where algo could be None (from the nested .get() calls) but ZramAlgorithm.__new__ requires a str parameter. The code has a real bug - if both 'algorithm' and 'algo' keys are missing from the dict, algo will be None, and ZramAlgorithm(None) will fail at runtime. Pyrefly was correctly catching this type mismatch, and removing this error means pyrefly is no longer detecting a real bug in the code.
Attribution: The change from is_consistent() to is_equivalent() in overload_resolution() in pyrefly/lib/alt/overload.rs made overload resolution stricter, which improved detection of this type mismatch that was previously missed.

✅ Improvement (23)

hydpy (+61, -58)

This is an improvement. The PR fixes overload resolution ambiguity detection and makes type inference more accurate. The change from 'Any' to 'Unknown' in assert_type error messages is correct - 'Unknown' better represents cases where the type checker genuinely cannot infer a concrete type, while 'Any' was incorrectly suggesting the type was intentionally dynamic. The removed errors about bad assignments and arguments involving 'Any'/'Unknown' types were also false positives - the new logic correctly handles these cases by materializing types in the right contexts. The 5 new inconsistent-overload errors are genuine improvements, catching real type signature mismatches that should be flagged.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs line 590 improved overload resolution by properly checking for equivalent return types rather than just consistent ones. The new materialize() logic in pyrefly/lib/solver/subset.rs and crates/pyrefly_types/src/types.rs converts 'Any' to 'Materialization' in type variable positions, leading to more accurate 'Unknown' reporting in assert_type failures.

dd-trace-py (-11)

The removed errors were false positives caused by overly strict type checking and inference failures. The missing-attribute errors incorrectly claimed None had attributes in a well-tested codebase (ddtrace), which indicates pyrefly was failing to properly track nullable types through control flow. The bad-return/bad-argument-type errors involving Unknown types were resolved by improved type inference through materialization. The PR's changes to overload resolution and equivalence checking fixed these inference issues, making pyrefly more accurate and less noisy.
Attribution: The change to is_equivalent() in overload_resolution() in pyrefly/lib/alt/overload.rs improved overload ambiguity detection. The new materialization-based equivalence checking in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs provides more accurate type comparisons. The materialization logic changes in crates/pyrefly_types/src/types.rs transform Any to Materialization in type variable positions for better inference.

poetry (-16)

The removed errors were false positives caused by overly conservative type inference. The code uses standard Python patterns: walrus operator assignments, dictionary key membership tests, and item assignments on dict-like objects. Pyrefly was incorrectly inferring None types in complex control flow and flagging valid operations. The PR improved type inference accuracy, particularly around Any/Unknown handling in type variable positions, which resolved these false positive errors. This represents an improvement in pyrefly's precision.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs and the new materialize() logic in crates/pyrefly_types/src/types.rs improved type inference accuracy. The materialize() method now properly handles Any-to-Unknown conversion in type variable positions, which fixed the overly conservative None inference that was causing these false positives.

discord.py (-9)

This is an improvement. The PR fixes overload resolution to properly detect ambiguity using type equivalence rather than just consistency, and improves type comparison by handling Any/Unknown types correctly through materialization. The removed errors were false positives where pyrefly was incorrectly inferring NoneType (likely from failed type resolution) and incorrectly rejecting valid EntityType assignments. The discord.py library is well-tested, so these missing-attribute errors on basic operations like accessing .id on objects were almost certainly type checker bugs rather than real code issues.
Attribution: The key changes are in pyrefly/lib/alt/overload.rs where is_consistent was replaced with is_equivalent for overload ambiguity detection, and in pyrefly/lib/solver/subset.rs where a new is_equivalent method was added that uses materialization to properly compare types with Any/Unknown. The materialize() method was also updated to only transform types in type variable positions.

cloud-init (+1, -19)

This is an improvement. The single new error correctly identifies a real bug - calling .get() on a bool at line 554 in cloudinit/url_helper.py. Looking at the code, v.get(k) is called where v is from headers_redact (a list) but the code assumes it's a dict-like object. This would cause an AttributeError at runtime since bool objects don't have a get method.

The 19 removed errors were mostly false positives involving Unknown types, which indicate type inference failures rather than real bugs. For example, errors like "Argument Literal[b''] | Unknown is not assignable to parameter url with type str" suggest pyrefly was failing to properly infer concrete types and falling back to Unknown. The PR improved type inference by refining overload resolution (using is_equivalent() instead of is_consistent()) and better handling of type variables, which eliminated these inference failures.

The one legitimate error being caught (bool.get()) outweighs the removal of multiple false positives, making this a net improvement in type checker accuracy.

Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs (replacing is_consistent()) improved overload resolution by properly checking type equivalence. The new materialize() logic in crates/pyrefly_types/src/types.rs that only transforms types in type variable positions (rather than all types) likely improved type inference, reducing false positive Unknown types. The enhanced subset checking in pyrefly/lib/solver/subset.rs with better handling of type variables and unions also contributed to more accurate type resolution.

core (+3, -34)

This is an improvement. The PR fixes overload resolution to properly detect ambiguous cases by checking type equivalence rather than just consistency. The removed errors were mostly false positives where pyrefly was incorrectly inferring types or being overly strict. The new errors are expected - when type inference becomes more precise, assert_type calls in test files may fail if they were relying on imprecise inference. The core improvement is that overload resolution now correctly identifies when multiple overloads have equivalent return types, avoiding spurious ambiguity errors.
Attribution: The changes to overload_resolution() in pyrefly/lib/alt/overload.rs (switching from is_consistent to is_equivalent) and the new is_equivalent() method in pyrefly/lib/solver/solver.rs caused the overload resolution to be more precise. The changes to assert_type handling in pyrefly/lib/alt/special_calls.rs (using is_equivalent instead of complex normalization) and the new materialize() logic in pyrefly/lib/types/types.rs caused the type comparison changes.

zulip (-3)

These removed errors were false positives caused by overly aggressive materialization of Any types in the type checker. The PR improved type inference by being more precise about when to materialize Any types - only in type variable positions rather than everywhere. This fixed cases where legitimate code patterns (regex substitution, dict.get with fallbacks) were incorrectly flagged as type errors. The code was actually type-safe, but the type checker's inference was too strict.
Attribution: The change to materialize() in crates/pyrefly_types/src/types.rs to use transform_types_in_type_variable_positions instead of transforming all Any types, combined with the new is_equivalent logic in pyrefly/lib/solver/subset.rs that properly handles type variable comparisons, fixed the false positive type inference issues.

aioredis (-1)

This is an improvement. The removed error was a false positive - the code response[field] = int(response[field]) is perfectly valid Python that assigns an integer value to a string key in a dictionary. The type checker was incorrectly flagging this standard dict operation as unsupported. The PR changes to overload resolution and type equivalence checking fixed this inference issue, removing the spurious error.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs (replacing is_consistent()) and the new equivalence checking logic in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs improved overload resolution accuracy. This fixed the false positive unsupported-operation error by better handling type equivalence in overload resolution contexts.

mkosi (-1)

This is an improvement. The error was a false positive caused by overly aggressive materialization of Any types. The code is actually type-safe - both branches of the conditional expression return strings (p from parts[4] and id from parts[0]), so the result should be str, not Any | None. The PR fixed the type inference by limiting materialization to only type variable positions, preventing the incorrect inference that was causing this false positive.
Attribution: The change to the materialize() method in crates/pyrefly_types/src/types.rs fixed this. The old version would materialize Any types everywhere, but the new version only materializes them in type variable positions using transform_types_in_type_variable_positions. This prevents incorrect materialization of Any in regular value positions, leading to better type inference

porcupine (-1)

This is an improvement. The removed error was a false positive where pyrefly incorrectly inferred Unknown | None as the return type of dict.get() when it should be str. The code is correct: config_value is established as dict[str, str] by the isinstance check on line 78, so config_value.get(node.text.decode('utf-8'), default) with a string default parameter correctly returns str. The PR's changes to overload resolution and type equivalence checking (switching from is_consistent() to is_equivalent() and adding materialization handling) improved type inference accuracy, eliminating this false positive.
Attribution: The change to overload_resolution() in pyrefly/lib/alt/overload.rs (line 590) switched from is_consistent() to is_equivalent() for checking overload ambiguity. Additionally, the new is_equivalent() method in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs uses materialization to handle Any types more accurately, which likely improved type inference and resolved the false positive Unknown inference that was causing the bad-return error.

prefect (-9)

Looking at the source code, the removed bad-override errors were false positives. For example, CoreFlowPolicy.priority() returns list[Union[type[BaseUniversalTransform[...]], type[BaseOrchestrationRule[...]]]] while its parent FlowRunOrchestrationPolicy.priority() expects the same union type. These are equivalent return types - the child class is not violating the Liskov substitution principle. The PR improved pyrefly's overload resolution by switching from is_consistent() to is_equivalent() checking, which uses bidirectional type equivalence with materialization. This catches cases where Union[A, B] and A | B are the same type but were previously treated as inconsistent. The materialization process converts Any to a special marker type only in type variable positions, making the equivalence check more precise and eliminating these false positive override errors.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs (line 590) replaced is_consistent() with is_equivalent() for overload resolution ambiguity checking. The new is_equivalent() method in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs provides bidirectional type equivalence checking using materialization. The materialize() method changes in crates/pyrefly_types/src/types.rs (lines 1655-1667) now only transform types in type variable positions rather than the entire type tree, making equivalence checking more precise.

mitmproxy (-16)

The removed errors were false positives caused by overly strict overload resolution. The re.Pattern.search() method clearly has overloads for both str and bytes arguments, so calling it with bytes(f.request.headers) should match the bytes overload. The PR fixed the overload resolution logic to use equivalence checking instead of consistency checking, which properly handles cases where multiple overloads have equivalent return types. The bad-return error was also a false positive caused by type inference issues that were resolved by the improved materialization and type variable handling. These changes make pyrefly's overload resolution more accurate and reduce false positive noise.
Attribution: The change to is_equivalent() in overload_resolution() in pyrefly/lib/alt/overload.rs line 590, combined with the new materialization approach in materialize() in crates/pyrefly_types/src/types.rs, fixed the overly strict overload resolution that was causing false positive no-matching-overload errors. The enhanced type variable handling in pyrefly/lib/solver/subset.rs improved type inference to resolve the bad-return false positive.

streamlit (+668, -669)

This appears to be an improvement. The change from Any to Unknown in error messages provides more accurate information about type inference failures. When pyrefly cannot infer a concrete type, showing Unknown is more precise than showing Any, which has specific semantic meaning in the type system. The PR improves type equivalence checking by using materialization, which helps distinguish between truly Any types and unresolved/uninferred types. This gives users better feedback about where type inference is failing versus where Any is legitimately used.
Attribution: The change to materialize() in crates/pyrefly_types/src/types.rs and the new equivalence checking logic in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs caused this change. The materialization now converts Any to Materialization only in type variable positions, and the equivalence checking uses materialized types for comparison.

paasta (-4)

These were false positive errors where pyrefly incorrectly inferred NoneType for dictionary objects that clearly have .get() methods. The PR improved type inference and equivalence checking, which resolved these inference failures. Looking at the code, sidecar_requirements_config comes from a chain of .get() calls that returns a KubeContainerResourceRequest dictionary (with a fallback to DEFAULT_SIDECAR_REQUEST), so calling .get() on it is perfectly valid. The pod_anti_affinity error appears to be a similar case where pyrefly failed to properly infer the type of an object that should have that attribute.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs (replacing is_consistent() with is_equivalent() for overload resolution) and the new is_equivalent() method implementation in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs improved type equivalence checking. The changes to materialize() in crates/pyrefly_types/src/types.rs and the new transform_types_in_type_variable_positions() method also contributed to better type inference by properly handling type variables in specific positions.

jax (-12)

This is an improvement. The removed errors were false positives caused by type inference failures and overly strict checking. The key evidence: (1) Error messages containing Unknown types indicate pyrefly's type inference was failing to resolve concrete types properly - these are inference bugs, not real code bugs; (2) Missing attribute errors on fundamental numpy/JAX classes like ndarray.type are almost certainly false positives in a well-tested scientific computing library; (3) The bad-argument-type error shows Any | Unknown being rejected where a concrete array type was expected, suggesting inference failure rather than a real type mismatch; (4) The PR improved overload resolution equivalence checking and type variable handling, which would naturally fix these inference issues. Removing false positives makes pyrefly more accurate and reduces noise for users.
Attribution: The changes to overload resolution in pyrefly/lib/alt/overload.rs (switching from is_consistent to is_equivalent for ambiguity checking) and the new is_equivalent method in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs improved type equivalence checking. The materialize() method changes in crates/pyrefly_types/src/types.rs and new type variable handling in subset checking likely fixed the inference failures that were producing Unknown types.

optuna (-7)

This is an improvement. The PR fixes overload resolution ambiguity detection by replacing is_consistent() with is_equivalent() when checking if multiple matching overloads have equivalent return types. The removed errors were false positives caused by overly strict type checking:

  1. The bad-argument-type error claiming ndarray[tuple[Any, ...], dtype[signedinteger[_64Bit]]] is not assignable to int in IntEnum.__new__ (line 114) appears to be a type inference failure. The code _ScaleType(self._scale_types[i]) is converting a numpy int64 to an IntEnum, which should work.

  2. The no-matching-overload error for numpy.arange (line 109-113) with arguments (Any, Unknown, ndarray) suggests pyrefly failed to match numpy's overloads correctly. The call np.arange(self._bounds[i, 0], self._bounds[i, 1] + 0.5 * self._steps[i], self._steps[i]) uses standard numpy array bounds and steps.

  3. The bad-assignment error claiming Any | None is not assignable to Redis[bytes] indicates overly conservative type checking.

The new is_equivalent() method provides better type equivalence checking by using materialization to handle Any types more appropriately, reducing false positives in overload resolution.

Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs line 590 (replacing is_consistent() with is_equivalent()) improved overload resolution by properly checking for equivalent return types when determining ambiguity. The new is_equivalent() method in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs provides better type equivalence checking using materialization. The materialize() method changes in crates/pyrefly_types/src/types.rs also contribute by improving how Any types are handled in type variable positions.

static-frame (-15)

This is an improvement. The PR improved pyrefly's type inference and overload resolution capabilities, removing false positive errors that were incorrectly flagging valid code. The missing-attribute errors on ndarray were particularly problematic - claiming that fundamental attributes like _persist_loc, _name, _values_mutable, and inventory were missing from a well-tested library's core class. These attributes are likely defined through __slots__ in parent classes or via dynamic assignment patterns that the previous type checker couldn't resolve properly. The invalid-yield error involved complex generator type inference that was incorrectly flagging a valid yield statement. The bad-assignment error was a false positive from dependency cycle detection. All of these removals represent the type checker becoming more accurate at understanding valid Python code patterns.
Attribution: The changes to transform_types_in_type_variable_positions() and visit_type_variables() in crates/pyrefly_types/src/types.rs improved type variable resolution by properly handling Type::Literal cases. The overload resolution changes in pyrefly/lib/alt/overload.rs (switching from is_consistent to is_equivalent) and the new is_equivalent method in pyrefly/lib/alt/solve.rs and pyrefly/lib/solver/solver.rs improved type equivalence checking. The subset relation improvements in pyrefly/lib/solver/subset.rs added better handling of type variables and unions.

cwltool (-2)

Both removed errors were false positives that pyrefly incorrectly flagged:

  1. Line 462 unsupported-operation: The error claimed Cannot set item in MutableMapping[...] but this is wrong. MutableMapping is specifically designed to support item assignment - that's its core purpose. The code srcs_of_sink[0]["type"] = src_typ is perfectly valid since srcs_of_sink[0] is a CWLObjectType (which is a MutableMapping).

  2. Line 853 bad-assignment: The error claimed incompatibility between dict[str, list[...] | list[Any]] and dict[str, MutableMapping[...] | MutableSequence[...]], but these types are actually compatible. The assigned dict's value type includes list[Any] which is assignable to MutableSequence[...].

The PR improved overload resolution and type equivalence checking, which fixed these inference failures where pyrefly was being overly strict about type compatibility.

Attribution: The changes to overload resolution in pyrefly/lib/alt/overload.rs (switching from is_consistent to is_equivalent in overload disambiguation) and the new is_equivalent method in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs improved type equivalence checking. The new equivalence logic with materialize() calls and better handling of type variables (TypeVar, ParamSpec, etc.) in subset.rs resolved these false positive type compatibility errors.

starlette (-2)

These were false positive errors caused by incorrect type inference. The expression base_url_scope.get("root_path", "") should return str (since the default is a string), not None or Any. The PR fixed the materialization logic to avoid incorrectly transforming Any types in value positions, which restored correct type inference for this common pattern. Removing these false positives is an improvement.
Attribution: The change to materialize() in crates/pyrefly_types/src/types.rs fixed the type inference. Previously, Any types were being materialized everywhere, but now materialization only happens in type variable positions, allowing proper type inference for expressions like dict.get(key, default_value).

sphinx (-1)

This is an improvement. The removed error was a false positive - pyrefly was incorrectly inferring that kwargs.get('srcdir', test_root) could return None, when it actually returns either a string from the kwargs dict or the default test_root string. The pathlib.Path class supports the / operator with string operands via its __truediv__ method, so sphinx_test_tempdir / kwargs.get('srcdir', test_root) is perfectly valid code. The PR's changes to overload resolution (switching from is_consistent() to is_equivalent()) fixed the type inference, eliminating this false positive.
Attribution: The change to is_equivalent() in pyrefly/lib/alt/overload.rs (line 590) and the new is_equivalent() method in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs improved type inference accuracy. The old is_consistent() method was apparently producing false positives in overload resolution, leading to incorrect type inference that made kwargs.get('srcdir', test_root) appear to return None when it actually returns a string.

cibuildwheel (-2)

These were false positive errors. The code structure guarantees that configuration is a dictionary: loaded_file.get(key, loaded_file['default']) will return either the value for key (if it exists) or loaded_file['default'] (which is also a dictionary since it's accessed with subscript notation). Pyrefly's improved type inference now correctly understands this pattern and no longer incorrectly infers that configuration could be None. This is an improvement in type checker accuracy.
Attribution: The changes to type variable handling and materialization in pyrefly/lib/solver/subset.rs (adding proper handling for TypeVar, ParamSpec, TypeVarTuple, and QuantifiedValue) and the new materialize() method changes in pyrefly/lib/types.rs improved type inference quality, allowing pyrefly to better track that configuration is a dictionary rather than potentially None.

scrapy (-5)

The removed errors were false positives caused by overly strict overload ambiguity detection. The PR fixed this by changing from unidirectional is_consistent() to bidirectional is_equivalent() checking in overload resolution. This allows pyrefly to correctly resolve overloads where return types are equivalent but not strictly consistent in one direction. The getattr() calls in scrapy return appropriate types, and the max()/min() calls have valid overloads - pyrefly was incorrectly flagging these as ambiguous before the fix.
Attribution: The change to is_equivalent() in overload_resolution() in pyrefly/lib/alt/overload.rs fixed the overly strict overload ambiguity detection, removing false positive bad-argument-type and no-matching-overload errors

psycopg (+8, -20)

This is an improvement. The PR improved pyrefly's type inference, causing it to infer more precise types instead of falling back to Any. The new errors correctly identify that Unknown (the inferred type) doesn't match the expected concrete types like MyRow. The removed errors were false positives where pyrefly incorrectly inferred Any but the actual types were more specific. The test code expects specific types like MyConnection[MyRow] and MyRow, and now pyrefly correctly infers Unknown when it cannot determine the precise type, rather than incorrectly inferring Any. This represents better type checking behavior - catching cases where type inference fails rather than silently accepting imprecise Any types.
Attribution: The changes to overload_resolution() in pyrefly/lib/alt/overload.rs (switching from is_consistent to is_equivalent for overload disambiguation) and the new is_equivalent() method in pyrefly/lib/solver/solver.rs and pyrefly/lib/solver/subset.rs improved type inference accuracy. The materialize() method changes in crates/pyrefly_types/src/types.rs also contributed by better handling of Any types in type variable positions.

➖ Neutral (6)

trio (+4, -4)

Same errors at same locations with same error kinds — message wording changed, no behavioral impact.

mypy-protobuf (+6, -6)

Same errors at same locations with same error kinds — message wording changed, no behavioral impact.

pyodide (+1, -1)

Same errors at same locations with same error kinds — message wording changed, no behavioral impact.

beartype (+1, -1)

Same errors at same locations with same error kinds — message wording changed, no behavioral impact.

hydra-zen (+13, -13)

Same errors at same locations with same error kinds — message wording changed, no behavioral impact.

meson (+8, -9)

Most errors at same locations with same error kinds — message wording changed with minor residual noise, no significant behavioral impact.

Suggested Fix

Summary: The PR introduced 5 regressions by making overload resolution stricter and changing type materialization behavior, causing false positives in pydantic/colour and missing real bugs in materialize/pip/archinstall.

1. In overload_resolution() in pyrefly/lib/alt/overload.rs, revert the change from is_consistent() to is_equivalent() on line 590. The stricter equivalence checking is causing false positive no-matching-overload errors on valid pydantic create_model calls and colour numpy array operations.

Files: pyrefly/lib/alt/overload.rs
Confidence: high
Affected projects: pydantic, colour
Fixes: no-matching-overload
The regression analysis shows that switching from is_consistent() to is_equivalent() made overload resolution too strict, causing 8 new false positive errors in pydantic and colour while removing detection of real bugs in materialize, pip, and archinstall. Reverting this change eliminates the false positives while restoring bug detection capability.

2. In materialize() in crates/pyrefly_types/src/types.rs, add a guard condition to preserve arithmetic type checking: when transforming types in type variable positions, skip materialization if the type is used in an arithmetic context (multiplication, addition, etc.). This prevents the loss of None * float error detection.

Files: crates/pyrefly_types/src/types.rs
Confidence: medium
Affected projects: materialize
Fixes: unsupported-operation
The materialize() method change to use transform_types_in_type_variable_positions improved type inference but inadvertently removed detection of None * float arithmetic errors in materialize. Adding context-aware materialization preserves bug detection while keeping the inference improvements.

3. In the new is_equivalent() method in pyrefly/lib/solver/solver.rs, add special handling for bytes/str compatibility: when comparing Literal[b''] with str types, treat them as incompatible to preserve the detection of bytes/string type violations in urllib operations.

Files: pyrefly/lib/solver/solver.rs
Confidence: medium
Affected projects: pip
Fixes: bad-return, bad-override
The new equivalence checking logic became too permissive, allowing Literal[b''] to be considered equivalent to str in pip's urllib.parse.urlunsplit call. Adding explicit bytes/str incompatibility checking restores detection of this real type safety issue.

4. In the equivalence checking logic in pyrefly/lib/solver/subset.rs, add a None-safety check: when comparing types involving nested .get() calls that can return None, ensure the equivalence check doesn't incorrectly treat None as compatible with constructor parameters that require non-None values.

Files: pyrefly/lib/solver/subset.rs
Confidence: medium
Affected projects: archinstall
Fixes: bad-argument-type
The improved equivalence checking in archinstall missed the case where algo could be None from nested .get() calls but ZramAlgorithm.new requires str. Adding explicit None-safety checking in equivalence comparisons restores detection of this constructor type mismatch.


Was this helpful? React with 👍 or 👎

Classification by primer-classifier (6 heuristic, 28 LLM)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Spec Violation: Ambiguous overloads are not resolved to Any

1 participant