Reports a class that inherits from two base classes with incompatible disjoint bases (PEP 800).

A class is a disjoint base when it carries the @typing.disjoint_base decorator or has a non-empty __slots__ attribute (including dataclasses created with slots=True). Many built-in types — int, str, float, tuple, list, dict, and others — are disjoint bases.

If two classes each trace back to a different, unrelated disjoint base, they cannot share a common subclass — Python raises a TypeError at runtime due to incompatible memory layouts.

Example:


class A:
    __slots__ = ('x',)

class B:
    __slots__ = ('y',)

class C(A, B):  # error: A and B have incompatible disjoint bases
    pass

Classes that share a common disjoint base ancestor (e.g., two subclasses of the same slotted class) are not flagged.