Skip to content

fix Return type inference for mutually recursive functions #804 - #4628

Open
asukaminato0721 wants to merge 1 commit into
facebook:mainfrom
asukaminato0721:804
Open

fix Return type inference for mutually recursive functions #804#4628
asukaminato0721 wants to merge 1 commit into
facebook:mainfrom
asukaminato0721:804

Conversation

@asukaminato0721

Copy link
Copy Markdown
Collaborator

Summary

Fixes #804

Recursive function SCCs now start from Never, preventing placeholder Unknown from leaking into inferred returns

Test Plan

add test

Recursive function SCCs now start from Never, preventing placeholder
Unknown from leaking into inferred returns
@meta-codesync

meta-codesync Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

This pull request has been imported. If you are a Meta employee, you can view this in D117062919. (Because this pull request was imported automatically, there will not be any future comments.)

@github-actions

Copy link
Copy Markdown

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

============================================================
SUMMARY
============================================================
Total: +54 new errors, -179 fixed errors

Projects with changes (16):
  openlibrary: +17 -42
  spark: +1 -2
  altair: +0 -1
  scikit-learn: +6 -7
  pycryptodome: +3 -3
  setuptools: +4 -6
  comtypes: +1 -5
  apprise: +3 -4
  manticore: +0 -68
  imagehash: +1 -1
  pytest-autoprofile: +0 -1
  pandera: +2 -2
  ibis: +4 -16
  parso: +1 -5
  spack: +11 -11
  attrs: +0 -5
============================================================

FULL DIFF DETAILS
------------------------------------------------------------

openlibrary (https://github.com/internetarchive/openlibrary)
- ERROR openlibrary/api.py:201:24-30: Argument `Generator[Unknown, Unknown] | Unknown` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
+ ERROR openlibrary/api.py:201:24-30: Argument `Generator[Never, Unknown] | Unknown` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
- ERROR openlibrary/api.py:203:36-42: Argument `Generator[Unknown, Unknown] | Unknown` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
+ ERROR openlibrary/api.py:203:36-42: Argument `Generator[Never, Unknown] | Unknown` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
- ERROR openlibrary/mocks/mock_infobase.py:180:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@MockSite, value: Unknown) -> list[list[list[Unknown] | Unknown] | Unknown] | Unknown`. Adding annotations may help. [non-convergent-recursion]
- ERROR openlibrary/plugins/admin/code.py:526:5-12: Fixpoint iteration did not converge. Inferred type `(d: Unknown) -> list[list[list[Unknown] | Unknown] | Unknown] | Unknown`. Adding annotations may help. [non-convergent-recursion]
+ ERROR openlibrary/plugins/openlibrary/connection.py:129:9-12: Class member `IAMiddleware.get` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
+ ERROR openlibrary/plugins/openlibrary/connection.py:133:27-63: The type of `edition_key` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:134:16-27: Implicit conversion of `Unknown | None` to `bool` is not allowed [implicit-bool]
- ERROR openlibrary/plugins/openlibrary/connection.py:169:21-90: The type of `keys_json` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:170:27-36: The type of this argument is unknown [unknown-argument-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:177:21-90: The type of `keys_json` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:178:27-36: The type of this argument is unknown [unknown-argument-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:210:24-59: The type of `jsontext` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:211:31-39: The type of this argument is unknown [unknown-argument-type]
+ ERROR openlibrary/plugins/openlibrary/connection.py:226:9-17: Class member `IAMiddleware.versions` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
+ ERROR openlibrary/plugins/openlibrary/connection.py:238:9-22: Class member `IAMiddleware.recentchanges` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
+ ERROR openlibrary/plugins/openlibrary/connection.py:293:9-12: Class member `MemcacheMiddleware.get` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
- ERROR openlibrary/plugins/openlibrary/connection.py:313:26-72: The type of `result` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:315:41-47: The type of this argument is unknown [unknown-argument-type]
+ ERROR openlibrary/plugins/openlibrary/connection.py:318:9-17: Class member `MemcacheMiddleware.get_many` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
- ERROR openlibrary/plugins/openlibrary/connection.py:328:23-74: The type of `result2` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:329:34-41: The type of this argument is unknown [unknown-argument-type]
+ ERROR openlibrary/plugins/openlibrary/connection.py:375:9-18: Class member `MemcacheMiddleware.store_get` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
- ERROR openlibrary/plugins/openlibrary/connection.py:380:22-74: The type of `result` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:382:35-41: The type of this argument is unknown [unknown-argument-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:393:18-76: The type of `result` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:401:18-79: The type of `result` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:408:18-78: The type of `result` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:436:22-94: The type of `result` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:439:22-94: The type of `result` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
+ ERROR openlibrary/plugins/openlibrary/connection.py:481:9-12: Class member `MigrationMiddleware.get` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
- ERROR openlibrary/plugins/openlibrary/connection.py:485:20-66: The type of `response` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:487:31-39: The type of this argument is unknown [unknown-argument-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:515:21-62: The type of `json_data` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:517:30-39: The type of this argument is unknown [unknown-argument-type]
+ ERROR openlibrary/plugins/openlibrary/connection.py:522:9-17: Class member `MigrationMiddleware.get_many` overrides parent class `ConnectionMiddleware` in an inconsistent manner [bad-override]
- ERROR openlibrary/plugins/openlibrary/connection.py:523:20-71: The type of `response` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/plugins/openlibrary/connection.py:525:31-39: The type of this argument is unknown [unknown-argument-type]
- ERROR openlibrary/plugins/upstream/borrow.py:389:12-21: Implicit conversion of `Generator[Any | Unknown, Unknown] | Any` to `bool` is not allowed [implicit-bool]
+ ERROR openlibrary/plugins/upstream/borrow.py:389:12-21: Implicit conversion of `Generator[Never, Unknown] | Any` to `bool` is not allowed [implicit-bool]
- ERROR openlibrary/plugins/upstream/borrow.py:394:12-21: Argument `Generator[Any | Unknown, Unknown] | Any` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
+ ERROR openlibrary/plugins/upstream/borrow.py:394:12-21: Argument `Generator[Never, Unknown] | Any` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
- ERROR openlibrary/plugins/upstream/borrow.py:398:16-28: Cannot index into `Generator[Any | Unknown, Unknown]` [bad-index]
+ ERROR openlibrary/plugins/upstream/borrow.py:398:16-28: Cannot index into `Generator[Never, Unknown]` [bad-index]
- ERROR openlibrary/plugins/upstream/code.py:304:13-20: Fixpoint iteration did not converge. Inferred type `(value: Unknown) -> Thing | list[Thing | list[Thing | list[Unknown] | Unknown] | Unknown] | Unknown`. Adding annotations may help. [non-convergent-recursion]
- ERROR openlibrary/plugins/upstream/utils.py:349:9-17: Fixpoint iteration did not converge. Inferred type `(d: Unknown) -> list[list[list[Unknown] | Unknown] | Unknown] | Unknown`. Adding annotations may help. [non-convergent-recursion]
- ERROR openlibrary/plugins/worksearch/schemes/works.py:458:53-60: Implicit conversion of `list[Unknown] | Unknown` to `bool` is not allowed [implicit-bool]
+ ERROR openlibrary/plugins/worksearch/schemes/works.py:458:53-60: Implicit conversion of `list[Unknown]` to `bool` is not allowed [implicit-bool]
- ERROR openlibrary/plugins/worksearch/schemes/works.py:485:32-39: Implicit conversion of `list[Unknown] | Unknown` to `bool` is not allowed [implicit-bool]
+ ERROR openlibrary/plugins/worksearch/schemes/works.py:485:32-39: Implicit conversion of `list[Unknown]` to `bool` is not allowed [implicit-bool]
- ERROR openlibrary/solr/query_utils.py:204:20-27: Implicit conversion of `list[Unknown] | Unknown` to `bool` is not allowed [implicit-bool]
+ ERROR openlibrary/solr/query_utils.py:204:20-27: Implicit conversion of `list[Unknown]` to `bool` is not allowed [implicit-bool]
- ERROR openlibrary/tests/core/test_connections.py:32:25-83: The type of `json_data` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/tests/core/test_connections.py:33:31-40: The type of this argument is unknown [unknown-argument-type]
- ERROR openlibrary/tests/core/test_connections.py:86:25-83: The type of `json_data` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/tests/core/test_connections.py:87:31-40: The type of this argument is unknown [unknown-argument-type]
- ERROR openlibrary/tests/core/test_connections.py:91:25-80: The type of `json_data` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR openlibrary/tests/core/test_connections.py:92:31-40: The type of this argument is unknown [unknown-argument-type]

spark (https://github.com/apache/spark)
- ERROR python/pyspark/errors/tests/test_traceback.py:106:68-69: `s` may be uninitialized [unbound-name]
- ERROR python/pyspark/testing/pandasutils.py:569:5-17: Fixpoint iteration did not converge. Inferred type `(f: Unknown | None = None, almost: bool | Unknown = True) -> ((f: Unknown | None = None, *, almost: bool | Unknown = ...) -> ((f: Unknown | None = None, *, almost: bool | Unknown = ...) -> ((f: Unknown | None = None, *, almost: bool | Unknown = ...) -> ((self: Unknown) -> None) | partial[Unknown]) | ((self: Unknown) -> None)) | ((self: Unknown) -> None)) | ((self: Unknown) -> None)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR python/pyspark/testing/pandasutils.py:569:5-17: Fixpoint iteration did not converge. Inferred type `(f: Unknown | None = None, almost: bool | Unknown = True) -> ((f: Unknown | None = None, *, almost: bool | Unknown = ...) -> ((f: Unknown | None = None, *, almost: bool | Unknown = ...) -> ((f: Unknown | None = None, *, almost: bool | Unknown = ...) -> ((f: Unknown | None = None, *, almost: bool | Unknown = ...) -> ((self: Unknown) -> None) | partial[Unknown]) | ((self: Unknown) -> None)) | ((self: Unknown) -> None)) | ((self: Unknown) -> None)) | ((self: Unknown) -> None)`. Adding annotations may help. [non-convergent-recursion]

altair (https://github.com/vega/altair)
- ERROR altair/utils/core.py:898:9-25: Fixpoint iteration did not converge. Inferred type `(self: Self@_ChannelCache, obj: Any, encoding: str, /) -> SchemaBase | list[SchemaBase | list[SchemaBase | list[Any | Unknown] | Any] | Any] | Any`. Adding annotations may help. [non-convergent-recursion]

scikit-learn (https://github.com/scikit-learn/scikit-learn)
- ERROR sklearn/ensemble/_hist_gradient_boosting/grower.py:732:9-739:10: Result of call expression is of type `tuple[int | Unknown, int | Unknown] | Unknown` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR sklearn/ensemble/_hist_gradient_boosting/grower.py:732:9-739:10: Result of call expression is of type `tuple[int | Unknown, int | Unknown]` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR sklearn/tree/_reingold_tilford.py:55:24-40: Argument `tuple[float, int | Unknown]` is not assignable to parameter `object` with type `ndarray[tuple[Any, ...], dtype[Unknown]]` in function `list.append` [bad-argument-type]
+ ERROR sklearn/tree/_reingold_tilford.py:55:24-40: Argument `tuple[float, int | Unknown]` is not assignable to parameter `object` with type `ndarray` in function `list.append` [bad-argument-type]
- ERROR sklearn/utils/_indexing.py:180:16-24: Implicit conversion of `set[str | Unknown | None]` to `bool` is not allowed [implicit-bool]
+ ERROR sklearn/utils/_indexing.py:180:16-24: Implicit conversion of `set[str | None]` to `bool` is not allowed [implicit-bool]
- ERROR sklearn/utils/_indexing.py:387:10-19: The type of this argument is unknown [unknown-argument-type]
- ERROR sklearn/utils/tests/test_indexing.py:104:9-33: Result of call expression is of type `str | Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR sklearn/utils/tests/test_indexing.py:104:9-33: Result of call expression is of type `str | None` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR sklearn/utils/tests/test_indexing.py:109:9-64: Result of call expression is of type `str | Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR sklearn/utils/tests/test_indexing.py:109:9-64: Result of call expression is of type `str | None` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR sklearn/utils/tests/test_indexing.py:135:17-55: Result of call expression is of type `str | Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR sklearn/utils/tests/test_indexing.py:135:17-55: Result of call expression is of type `str | None` and is not used; assign to `_` if this is intentional [unused-call-result]

pycryptodome (https://github.com/Legrandin/pycryptodome)
- ERROR lib/Crypto/Hash/KangarooTwelve.py:79:13-30: Result of call expression is of type `Unknown | Self@K12_XOF` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR lib/Crypto/Hash/KangarooTwelve.py:79:13-30: Result of call expression is of type `Self@K12_XOF` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR lib/Crypto/Hash/KangarooTwelve.py:177:13-38: Result of call expression is of type `Unknown | Self@K12_XOF` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR lib/Crypto/Hash/KangarooTwelve.py:177:13-38: Result of call expression is of type `Self@K12_XOF` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR lib/Crypto/Hash/KangarooTwelve.py:183:17-42: Result of call expression is of type `Unknown | Self@K12_XOF` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR lib/Crypto/Hash/KangarooTwelve.py:183:17-42: Result of call expression is of type `Self@K12_XOF` and is not used; assign to `_` if this is intentional [unused-call-result]

setuptools (https://github.com/pypa/setuptools)
- ERROR setuptools/_vendor/autocommand/autoasync.py:54:5-14: Fixpoint iteration did not converge. Inferred type `(coro: Unknown | None = None, *, loop: Unknown | None = None, forever: bool | Unknown = False, pass_loop: bool | Unknown = False) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> Unknown) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR setuptools/_vendor/autocommand/autoasync.py:54:5-14: Fixpoint iteration did not converge. Inferred type `(coro: Unknown | None = None, *, loop: Unknown | None = None, forever: bool | Unknown = False, pass_loop: bool | Unknown = False) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> Never) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
- ERROR setuptools/_vendor/autocommand/autoasync.py:99:9-102:33: Fixpoint iteration did not converge. Inferred type `(c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> Unknown) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR setuptools/_vendor/autocommand/autoasync.py:99:9-102:33: Fixpoint iteration did not converge. Inferred type `(c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> ((c: Unknown) -> Never) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
- ERROR setuptools/_vendor/autocommand/autoparse.py:232:5-14: Fixpoint iteration did not converge. Inferred type `(func: Unknown | None = None, *, description: Unknown | None = None, epilog: Unknown | None = None, add_nos: bool | Unknown = False, parser: Unknown | None = None) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> Unknown) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR setuptools/_vendor/autocommand/autoparse.py:232:5-14: Fixpoint iteration did not converge. Inferred type `(func: Unknown | None = None, *, description: Unknown | None = None, epilog: Unknown | None = None, add_nos: bool | Unknown = False, parser: Unknown | None = None) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> Never) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)`. Adding annotations may help. [non-convergent-recursion]
- ERROR setuptools/_vendor/autocommand/autoparse.py:273:9-277:27: Fixpoint iteration did not converge. Inferred type `(f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> Unknown) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR setuptools/_vendor/autocommand/autoparse.py:273:9-277:27: Fixpoint iteration did not converge. Inferred type `(f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> ((f: Unknown) -> Never) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)) | ((argv: Unknown | None = None) -> Unknown)`. Adding annotations may help. [non-convergent-recursion]
- ERROR setuptools/_vendor/backports/tarfile/__init__.py:1508:13-80: Result of call expression is of type `Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR setuptools/_vendor/backports/tarfile/__init__.py:1516:36-45: The type of this argument is unknown [unknown-argument-type]

comtypes (https://github.com/enthought/comtypes)
- ERROR comtypes/tools/codegenerator/packing.py:23:17-29: The type of `a` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
+ ERROR comtypes/tools/codegenerator/packing.py:24:12-20: Implicit conversion of `int | Unknown` to `bool` is not allowed [implicit-bool]
- ERROR comtypes/tools/codegenerator/packing.py:23:27-28: The type of this argument is unknown [unknown-argument-type]
- ERROR comtypes/tools/codegenerator/packing.py:31:30-31: The type of this argument is unknown [unknown-argument-type]
- ERROR comtypes/tools/codegenerator/packing.py:32:40-41: The type of this argument is unknown [unknown-argument-type]
- ERROR comtypes/tools/codegenerator/packing.py:79:5-12: Fixpoint iteration did not converge. Inferred type `(t: Unknown) -> Unknown`. Adding annotations may help. [non-convergent-recursion]

apprise (https://github.com/caronc/apprise)
+ ERROR apprise/plugins/sendpulse.py:467:27-53: Argument `Unknown | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | SupportsTrunc | str` in function `int.__new__` [bad-argument-type]
- ERROR apprise/plugins/sendpulse.py:463:24-52: The type of `access_token` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR apprise/plugins/sendpulse.py:467:27-53: The type of this argument is unknown [unknown-argument-type]
- ERROR apprise/plugins/sendpulse.py:491:40-52: The type of this argument is unknown [unknown-argument-type]
+ ERROR apprise/plugins/sendpulse.py:508:16-28: Implicit conversion of `Literal[False] | Unknown | None` to `bool` is not allowed [implicit-bool]
- ERROR apprise/plugins/sendpulse.py:721:17-723:33: Implicit conversion of `Literal[0, False] | Unknown` to `bool` is not allowed [implicit-bool]
+ ERROR apprise/plugins/sendpulse.py:721:17-723:33: Implicit conversion of `Literal[0, False] | Unknown | None` to `bool` is not allowed [implicit-bool]

manticore (https://github.com/trailofbits/manticore)
- ERROR manticore/__main__.py:38:27-48: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/manticore.py:329:21-32: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/manticore.py:334:11-29: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/manticore.py:1112:23-37: The type of `timeout` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/core/manticore.py:1122:33-40: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1028:25-41: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1029:28-52: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1033:25-40: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1034:28-51: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1035:25-45: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1036:28-56: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1097:33-49: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1099:35-48: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1101:35-50: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/smtlib/solver.py:1103:35-55: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/workspace.py:218:52-72: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/core/workspace.py:218:74-88: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/ethereum/manticore.py:922:19-36: The type of `gas` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/ethereum/manticore.py:991:83-86: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/ethereum/manticore.py:1749:21-51: The type of `procs` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/ethereum/manticore.py:1777:85-90: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/ethereum/manticore.py:1946:21-51: The type of `procs` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/ethereum/manticore.py:1967:85-90: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/native/manticore.py:133:26-43: The type of `stdin_size` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/native/manticore.py:145:21-31: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/native/manticore.py:464:22-39: The type of `stdin_size` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/native/manticore.py:504:59-75: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/platforms/evm.py:1760:54-78: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/platforms/evm.py:3345:17-30: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/utils/config.py:93:16-26: Returning implicit Any from function declared to return "str" [no-any-return-implicit]
- ERROR manticore/utils/config.py:107:24-40: The type of `existing` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/utils/config.py:126:23-58: The type of `default` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR manticore/utils/config.py:141:16-44: Returning implicit Any from function declared to return "str" [no-any-return-implicit]
- ERROR manticore/utils/config.py:147:44-63: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/utils/config.py:150:16-32: Returning implicit Any from function declared to return "_Var" [no-any-return-implicit]
- ERROR manticore/utils/config.py:162:21-31: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/utils/config.py:236:25-33: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/utils/config.py:238:25-33: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/utils/config.py:238:37-46: The type of this argument is unknown [unknown-argument-type]
- ERROR manticore/utils/config.py:308:37-40: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/ethereum/test_detectors.py:33:22-47: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/ethereum/test_general.py:77:29-52: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/ethereum/test_sha3.py:17:22-47: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/ethereum/test_sha3.py:25:27-54: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/ethereum/test_sha3.py:426:27-53: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/ethereum/test_sha3.py:474:27-42: This expression is implicitly inferred to be `Any`. Please provide an explicit type annotation. [unknown-attribute-type]
- ERROR tests/ethereum/test_sha3.py:475:27-47: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/ethereum/test_sha3.py:482:27-42: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/native/test_state.py:294:28-51: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/native/test_state.py:375:28-51: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/native/test_state.py:398:13-42: The type of `s` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR tests/other/utils/test_config.py:28:26-35: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:41:26-49: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:42:25-48: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:65:26-32: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:71:26-31: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:76:30-35: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:78:30-35: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:82:34-39: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:130:26-32: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:131:26-32: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:132:26-32: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:133:26-32: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:149:30-36: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:222:26-39: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:223:26-37: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:227:26-31: The type of this argument is unknown [unknown-argument-type]
- ERROR tests/other/utils/test_config.py:228:26-40: The type of this argument is unknown [unknown-argument-type]

imagehash (https://github.com/JohannesBuchner/imagehash)
- ERROR imagehash/__init__.py:382:3-12: Cannot set item in `list[tuple[ndarray[Unknown, Unknown] | Unknown, ndarray[Unknown, Unknown] | Unknown, ndarray[Unknown, Unknown] | Unknown]]` [unsupported-operation]
+ ERROR imagehash/__init__.py:382:3-12: Cannot set item in `list[tuple[ndarray[Unknown, Unknown], ndarray[Unknown, Unknown], ndarray[Unknown, Unknown]]]` [unsupported-operation]

pytest-autoprofile (https://gitlab.com/TTsangSC/pytest-autoprofile)
- ERROR tests/test-modules-and-tests/test_doctest/packages/my_pkg/funcs.py:47:5-14: Fixpoint iteration did not converge. Inferred type `(func: Unknown | None = None, /, **kwargs: Unknown) -> ((*args: Unknown, **kwargs: Unknown) -> Unknown) | partial[((*args: Unknown, **kwargs: Unknown) -> Unknown) | partial[((*args: Unknown, **kwargs: Unknown) -> Unknown) | partial[((*args: Unknown, **kwargs: Unknown) -> Unknown) | Unknown]]]`. Adding annotations may help. [non-convergent-recursion]

pandera (https://github.com/pandera-dev/pandera)
- ERROR pandera/api/extensions.py:156:5-26: Fixpoint iteration did not converge. Inferred type `(check_fn: Unknown | None = None, *, statistics: list[str] | None = None, supported_types: list[Unknown] | tuple[Unknown, ...] | type[Any] | None = None, check_type: CheckType | str = 'vectorized', strategy: Unknown | None = None, constraint: Unknown | None = None) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((...) -> Unknown) | partial[Unknown]) | ((...) -> Unknown)) | ((...) -> Unknown)) | ((...) -> Unknown)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR pandera/api/extensions.py:156:5-26: Fixpoint iteration did not converge. Inferred type `(check_fn: Unknown | None = None, *, statistics: list[str] | None = None, supported_types: list[Unknown] | tuple[Unknown, ...] | type[Any] | None = None, check_type: CheckType | str = 'vectorized', strategy: Unknown | None = None, constraint: Unknown | None = None) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((...) -> Unknown) | partial[Unknown]) | ((...) -> Unknown)) | ((...) -> Unknown)) | ((...) -> Unknown)) | ((...) -> Unknown)`. Adding annotations may help. [non-convergent-recursion]
- ERROR tests/pandas/test_extensions.py:318:9-320:10: Result of call expression is of type `((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((...) -> Unknown) | partial[Unknown]) | ((...) -> Unknown)) | ((...) -> Unknown)) | ((...) -> Unknown)` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR tests/pandas/test_extensions.py:318:9-320:10: Result of call expression is of type `((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((check_fn: Unknown | None = None, *, statistics: list[str] | None = ..., supported_types: Unknown = ..., check_type: CheckType | str = ..., strategy: Unknown | None = ..., constraint: Unknown | None = ...) -> ((...) -> Unknown) | partial[Unknown]) | ((...) -> Unknown)) | ((...) -> Unknown)) | ((...) -> Unknown)) | ((...) -> Unknown)` and is not used; assign to `_` if this is intentional [unused-call-result]

ibis (https://github.com/ibis-project/ibis)
- ERROR ibis/backends/sqlite/udf.py:66:5-8: Fixpoint iteration did not converge. Inferred type `(func: Unknown | None = None, *, skip_if_exists: bool | Unknown = False, deterministic: bool | Unknown = True) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> Unknown) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR ibis/backends/sqlite/udf.py:66:5-8: Fixpoint iteration did not converge. Inferred type `(func: Unknown | None = None, *, skip_if_exists: bool | Unknown = False, deterministic: bool | Unknown = True) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> Never) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
- ERROR ibis/backends/sqlite/udf.py:87:9-89:10: Fixpoint iteration did not converge. Inferred type `(func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> Unknown) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
+ ERROR ibis/backends/sqlite/udf.py:87:9-89:10: Fixpoint iteration did not converge. Inferred type `(func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> ((func: Unknown) -> Never) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)) | ((*args: Unknown, **kwargs: Unknown) -> Unknown | None)`. Adding annotations may help. [non-convergent-recursion]
- ERROR ibis/common/annotations.py:571:5-14: Fixpoint iteration did not converge. Inferred type `(_1: Unknown | None = None, _2: Unknown | None = None, _3: Unknown | None = None, **kwargs: Unknown) -> ((*args: Unknown, **kwargs: Unknown) -> Unknown) | partial[((*args: Unknown, **kwargs: Unknown) -> Unknown) | partial[((*args: Unknown, **kwargs: Unknown) -> Unknown) | partial[((*args: Unknown, **kwargs: Unknown) -> Unknown) | Unknown]]]`. Adding annotations may help. [non-convergent-recursion]
- ERROR ibis/common/tests/test_deferred.py:368:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:374:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:385:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:392:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:397:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:404:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:409:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:416:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/common/tests/test_deferred.py:422:11-30: The type of `res` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/expr/tests/test_reductions.py:104:20-41: The type of `resolved` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR ibis/expr/types/arrays.py:530:66-70: Argument `object | Unknown` is not assignable to parameter `body` with type `Value[Unknown]` in function `ibis.expr.operations.arrays.ArrayMap.__init__` [bad-argument-type]
+ ERROR ibis/expr/types/arrays.py:530:66-70: Argument `object` is not assignable to parameter `body` with type `Value[Unknown]` in function `ibis.expr.operations.arrays.ArrayMap.__init__` [bad-argument-type]
- ERROR ibis/expr/types/arrays.py:641:69-73: Argument `object | Unknown` is not assignable to parameter `body` with type `Value[Boolean]` in function `ibis.expr.operations.arrays.ArrayFilter.__init__` [bad-argument-type]
+ ERROR ibis/expr/types/arrays.py:641:69-73: Argument `object` is not assignable to parameter `body` with type `Value[Boolean]` in function `ibis.expr.operations.arrays.ArrayFilter.__init__` [bad-argument-type]
- ERROR ibis/expr/types/generic.py:1810:24-44: Returning implicit Any from function declared to return "Value | None" [no-any-return-implicit]

parso (https://github.com/davidhalter/parso)
- ERROR parso/pgen2/grammar_parser.py:76:17-30: Result of call expression is of type `Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR parso/pgen2/grammar_parser.py:91:13-25: Result of call expression is of type `Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR parso/pgen2/grammar_parser.py:103:13-25: Result of call expression is of type `Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR parso/pgen2/grammar_parser.py:112:13-25: Result of call expression is of type `Unknown | None` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR parso/python/errors.py:398:24-44: Implicit conversion of `_Context | Unknown | None` to `bool` is not allowed [implicit-bool]
+ ERROR parso/python/errors.py:398:24-44: Implicit conversion of `_Context | None` to `bool` is not allowed [implicit-bool]

spack (https://github.com/spack/spack)
- ERROR lib/spack/spack/filesystem_view.py:395:12-21: Implicit conversion of `list[str | Unknown]` to `bool` is not allowed [implicit-bool]
+ ERROR lib/spack/spack/filesystem_view.py:395:12-21: Implicit conversion of `list[str]` to `bool` is not allowed [implicit-bool]
- ERROR lib/spack/spack/graph.py:402:25-67: Result of call expression is of type `bool | Unknown` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR lib/spack/spack/graph.py:402:25-67: Result of call expression is of type `bool` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR lib/spack/spack/graph.py:424:21-60: Result of call expression is of type `bool | Unknown` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR lib/spack/spack/graph.py:424:21-60: Result of call expression is of type `bool` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR lib/spack/spack/test/util/lock_unix.py:288:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@AcquireWrite) -> (self: Self@AcquireWrite) -> (self: Self@AcquireWrite) -> (self: Self@AcquireWrite) -> Unknown`. Adding annotations may help. [non-convergent-recursion]
+ ERROR lib/spack/spack/test/util/lock_unix.py:288:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@AcquireWrite) -> (self: Self@AcquireWrite) -> (self: Self@AcquireWrite) -> (self: Self@AcquireWrite) -> (self: Self@AcquireWrite) -> Never`. Adding annotations may help. [non-convergent-recursion]
- ERROR lib/spack/spack/test/util/lock_unix.py:305:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@AcquireRead) -> (self: Self@AcquireRead) -> (self: Self@AcquireRead) -> (self: Self@AcquireRead) -> Unknown`. Adding annotations may help. [non-convergent-recursion]
+ ERROR lib/spack/spack/test/util/lock_unix.py:305:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@AcquireRead) -> (self: Self@AcquireRead) -> (self: Self@AcquireRead) -> (self: Self@AcquireRead) -> (self: Self@AcquireRead) -> Never`. Adding annotations may help. [non-convergent-recursion]
- ERROR lib/spack/spack/test/util/lock_unix.py:322:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@TimeoutWrite) -> (self: Self@TimeoutWrite) -> (self: Self@TimeoutWrite) -> (self: Self@TimeoutWrite) -> Unknown`. Adding annotations may help. [non-convergent-recursion]
+ ERROR lib/spack/spack/test/util/lock_unix.py:322:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@TimeoutWrite) -> (self: Self@TimeoutWrite) -> (self: Self@TimeoutWrite) -> (self: Self@TimeoutWrite) -> (self: Self@TimeoutWrite) -> Never`. Adding annotations may help. [non-convergent-recursion]
- ERROR lib/spack/spack/test/util/lock_unix.py:340:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@TimeoutRead) -> (self: Self@TimeoutRead) -> (self: Self@TimeoutRead) -> (self: Self@TimeoutRead) -> Unknown`. Adding annotations may help. [non-convergent-recursion]
+ ERROR lib/spack/spack/test/util/lock_unix.py:340:9-17: Fixpoint iteration did not converge. Inferred type `(self: Self@TimeoutRead) -> (self: Self@TimeoutRead) -> (self: Self@TimeoutRead) -> (self: Self@TimeoutRead) -> (self: Self@TimeoutRead) -> Never`. Adding annotations may help. [non-convergent-recursion]
- ERROR lib/spack/spack/util/filesystem.py:900:21-42: Result of call expression is of type `str | Unknown` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR lib/spack/spack/util/filesystem.py:900:21-42: Result of call expression is of type `str` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR lib/spack/spack/util/filesystem.py:905:21-39: Result of call expression is of type `str | Unknown` and is not used; assign to `_` if this is intentional [unused-call-result]
+ ERROR lib/spack/spack/util/filesystem.py:905:21-39: Result of call expression is of type `str` and is not used; assign to `_` if this is intentional [unused-call-result]
- ERROR lib/spack/spack/util/link_tree.py:471:12-21: Implicit conversion of `list[str | Unknown]` to `bool` is not allowed [implicit-bool]
+ ERROR lib/spack/spack/util/link_tree.py:471:12-21: Implicit conversion of `list[str]` to `bool` is not allowed [implicit-bool]
- ERROR lib/spack/spack/util/link_tree.py:554:12-20: Implicit conversion of `str | Unknown | None` to `bool` is not allowed [implicit-bool]
+ ERROR lib/spack/spack/util/link_tree.py:554:12-20: Implicit conversion of `str | None` to `bool` is not allowed [implicit-bool]

attrs (https://github.com/python-attrs/attrs)
- ERROR src/attr/_funcs.py:78:13-35: The type of `attrs` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR src/attr/_funcs.py:272:13-35: The type of `attrs` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR src/attr/_funcs.py:415:13-35: The type of `attrs` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]
- ERROR src/attr/_funcs.py:417:21-26: The type of this argument is unknown [unknown-argument-type]
- ERROR src/attr/_make.py:635:13-24: The type of `attrs` is unknown; it is inferred as an implicit `Any` [unknown-variable-type]

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.

Return type inference for mutually recursive functions

2 participants