__slots__ 定義のクラスの無効な使用箇所を報告します。

未定義の属性にアクセスしている例:


class Foo:
    __slots__ = ['foo', 'bar']

    def __init__(self):
        self.x = 3  # error: 'x' is not defined in __slots__

属性が競合している例:


class A:
    __slots__ = ("x",)
    x = 42  # error: conflict with "x" listed in __slots__

slots=True の例:


from dataclasses import dataclass

@dataclass(slots=True)  # エラー: __slots__ は Foo でも定義されています
class Foo:
    __slots__ = ['a']