Add static type checking #8
Open
Annotations
12 errors and 11 warnings
|
Type check with ty
Process completed with exit code 1.
|
|
Type check with ty:
libdestruct/c/struct_parser.py#L15
libdestruct/c/struct_parser.py:15:6: unresolved-import: Cannot resolve imported module `pycparser`
info: Searched in the following paths during module resolution:
info: 1. /home/runner/work/libdestruct/libdestruct (first-party code)
info: 2. vendored://stdlib (stdlib typeshed stubs vendored by ty)
info: 3. /opt/hostedtoolcache/Python/3.12.13/x64/lib/python3.12/site-packages (site-packages)
info: make sure your Python environment is properly configured: https://docs.astral.sh/ty/modules/#python-environment
info: rule `unresolved-import` is enabled by default
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/common/array/array_field_inflater.py#L40
libdestruct/common/array/array_field_inflater.py:40:5: ARG001 Unused function argument: `item`
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/common/array/array.py#L10
libdestruct/common/array/array.py:10:29: TC003 Move standard library import `collections.abc.Iterator` into a type-checking block
help: Move into type-checking block
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/c/struct_parser.py#L248
libdestruct/c/struct_parser.py:248:7: FIX002 Line contains TODO, consider resolving the issue
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/c/struct_parser.py#L134
libdestruct/c/struct_parser.py:134:17: FURB110 Replace ternary `if` expression with `or` operator
help: Replace with `or` operator
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/c/ctypes_generic.py#L30
libdestruct/c/ctypes_generic.py:30:44: ANN401 Dynamically typed expressions (typing.Any) are disallowed in `value`
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/c/ctypes_generic.py#L26
libdestruct/c/ctypes_generic.py:26:39: ANN401 Dynamically typed expressions (typing.Any) are disallowed in `get`
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/c/c_str.py#L9
libdestruct/c/c_str.py:9:29: TC003 Move standard library import `collections.abc.Iterator` into a type-checking block
help: Move into type-checking block
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/c/c_integer_types.py#L31
libdestruct/c/c_integer_types.py:31:13: S101 Use of `assert` detected
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/backing/memory_resolver.py#L20
libdestruct/backing/memory_resolver.py:20:121: E501 Line too long (142 > 120)
|
|
Lint with Ruff on an extended ruleset but always return success:
libdestruct/backing/fake_resolver.py#L17
libdestruct/backing/fake_resolver.py:17:121: E501 Line too long (147 > 120)
|
|
Complete job
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Type check with ty:
libdestruct/backing/memory_resolver.py#L51
libdestruct/backing/memory_resolver.py:51:9: invalid-method-override: Invalid override of method `modify`: Definition is incompatible with `Resolver.modify`
libdestruct/backing/resolver.py:40:9: `Resolver.modify` defined here
info: This violates the Liskov Substitution Principle
info: rule `invalid-method-override` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/memory_resolver.py#L46
libdestruct/backing/memory_resolver.py:46:9: invalid-method-override: Invalid override of method `resolve`: Definition is incompatible with `Resolver.resolve`
libdestruct/backing/resolver.py:36:9: `Resolver.resolve` defined here
info: This violates the Liskov Substitution Principle
info: rule `invalid-method-override` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/memory_resolver.py#L35
libdestruct/backing/memory_resolver.py:35:9: invalid-method-override: Invalid override of method `relative_from_own`: Definition is incompatible with `Resolver.relative_from_own`
libdestruct/backing/resolver.py:24:9: `Resolver.relative_from_own` defined here
info: This violates the Liskov Substitution Principle
info: rule `invalid-method-override` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/memory_resolver.py#L33
libdestruct/backing/memory_resolver.py:33:16: unsupported-operator: Operator `+` is not supported between objects of type `int` and `Unknown | None`
libdestruct/backing/memory_resolver.py:33:16: Has type `int`
libdestruct/backing/memory_resolver.py:33:48: Has type `Unknown | None`
info: rule `unsupported-operator` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/memory_resolver.py#L24
libdestruct/backing/memory_resolver.py:24:9: invalid-assignment: Object of type `None` is not assignable to attribute `parent` of type `MemoryResolver`
info: rule `invalid-assignment` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/fake_resolver.py#L62
libdestruct/backing/fake_resolver.py:62:9: invalid-method-override: Invalid override of method `modify`: Definition is incompatible with `Resolver.modify`
libdestruct/backing/resolver.py:40:9: `Resolver.modify` defined here
info: This violates the Liskov Substitution Principle
info: rule `invalid-method-override` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/fake_resolver.py#L43
libdestruct/backing/fake_resolver.py:43:9: invalid-method-override: Invalid override of method `resolve`: Definition is incompatible with `Resolver.resolve`
libdestruct/backing/resolver.py:36:9: `Resolver.resolve` defined here
info: This violates the Liskov Substitution Principle
info: rule `invalid-method-override` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/fake_resolver.py#L32
libdestruct/backing/fake_resolver.py:32:9: invalid-method-override: Invalid override of method `relative_from_own`: Definition is incompatible with `Resolver.relative_from_own`
libdestruct/backing/resolver.py:24:9: `Resolver.relative_from_own` defined here
info: This violates the Liskov Substitution Principle
info: rule `invalid-method-override` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/fake_resolver.py#L30
libdestruct/backing/fake_resolver.py:30:16: unsupported-operator: Operator `+` is not supported between objects of type `int` and `Unknown | None`
libdestruct/backing/fake_resolver.py:30:16: Has type `int`
libdestruct/backing/fake_resolver.py:30:48: Has type `Unknown | None`
info: rule `unsupported-operator` was selected in the configuration file
|
|
Type check with ty:
libdestruct/backing/fake_resolver.py#L21
libdestruct/backing/fake_resolver.py:21:9: invalid-assignment: Object of type `None` is not assignable to attribute `parent` of type `FakeResolver`
info: rule `invalid-assignment` was selected in the configuration file
|
Loading