blob: 3fd40b774c7b4b899f74a4afd8167a221e0ef06a [file] [log] [blame] [edit]
[case updateMagicField]
from attr import Attribute
import m
def g() -> Attribute[int]:
return m.A.__attrs_attrs__[0]
[file m.py]
from attr import define
@define
class A:
a: int
[file m.py.2]
from attr import define
@define
class A:
a: float
[builtins fixtures/attr.pyi]
[out]
==
main:5: error: Incompatible return value type (got "Attribute[float]", expected "Attribute[int]")
[case magicAttributeConsistency]
import m
[file c.py]
from attr import define
@define
class A:
a: float
b: int
[builtins fixtures/attr.pyi]
[file m.py]
from c import A
A.__attrs_attrs__.a
[file m.py.2]
from c import A
A.__attrs_attrs__.b
[out]
==
[case magicAttributeConsistency2-only_when_cache]
[file c.py]
import attr
@attr.s
class Entry:
var: int = attr.ib()
[builtins fixtures/attr.pyi]
[file m.py]
from typing import Any, ClassVar, Protocol
from c import Entry
class AttrsInstance(Protocol):
__attrs_attrs__: ClassVar[Any]
def func(e: AttrsInstance) -> None: ...
func(Entry(2))
[file m.py.2]
from typing import Any, ClassVar, Protocol
from c import Entry
class AttrsInstance(Protocol):
__attrs_attrs__: ClassVar[Any]
def func(e: AttrsInstance) -> int:
return 2 # Change return type to force reanalysis
func(Entry(2))
[out]
==