Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[panic] infer_definition_types(Id(1412)): execute: too many cycle iterations #3499

Description

@BarrensZeppelin

Checking this file:

from __future__ import annotations

import ast
from typing import (
    TYPE_CHECKING,
    Final,
    Literal,
    TypeAlias,
    final,
)


FunctionNode: TypeAlias = ast.FunctionDef | ast.AsyncFunctionDef | ast.Lambda
ComprehensionNode: TypeAlias = (
    ast.ListComp | ast.SetComp | ast.DictComp | ast.GeneratorExp
)
NamespaceNode: TypeAlias = ast.ClassDef | FunctionNode | ComprehensionNode

Namespace: TypeAlias = NamespaceNode | Literal["builtins", "globals"]

if TYPE_CHECKING:
    from collections.abc import Iterator


@final
class ScopeChain:
    "Linked list of scopes"

    __slots__ = ("depth", "ns", "parent")

    def __init__(self, ns: Namespace, parent: ScopeChain | None = None) -> None:
        self.ns: Final = ns
        self.parent: Final = parent
        self.depth: Final = 1 if parent is None else parent.depth + 1

    def __iter__(self) -> Iterator[Namespace]:
        n = self
        while True:
            yield n.ns
            if n.parent is None:
                break
            n = n.parent

    def __len__(self) -> int:
        return self.depth

crashes ty:

$ uvx [email protected] check chain.py
error[panic]: Panicked at /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salsa-0.26.2/src/function/execute.rs:633:9 when checking `/tmp/py/chain.py`: `infer_definition_types(Id(1412)): execute: too many cycle iterations`
info: This indicates a bug in ty.
info: If you could open an issue at https://github.com/astral-sh/ty/issues/new?title=%5Bpanic%5D, we'd be very appreciative!
info: Platform: linux x86_64
info: Version: 0.0.38
info: Args: ["ty", "check", "chain.py"]
info: run with `RUST_BACKTRACE=1` environment variable to show the full backtrace information
info: query stacktrace:
   0: StaticClassLiteral < 'db >::implicit_attribute_inner_(Id(d00f))
             at crates/ty_python_semantic/src/types/class/static_literal.rs:96
   1: Type < 'db >::member_lookup_with_policy_(Id(302c))
             at crates/ty_python_semantic/src/types.rs:881
   2: infer_expression_types_impl(Id(dc02))
             at crates/ty_python_semantic/src/types/infer.rs:361
   3: infer_scope_types_impl(Id(1002))
             at crates/ty_python_semantic/src/types/infer.rs:324
   4: check_file_impl(Id(c00))
             at crates/ty_project/src/lib.rs:725

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingfatala fatal error (panic or crash)

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions