def _verify_static_class_methods(stub: nodes.FuncBase, runtime: Any, object_path: List[str]) -> Iterator[str]:
    if (stub.name in ('__new__', '__init_subclass__', '__class_getitem__')):
        return
    if inspect.isbuiltin(runtime):
        probably_class_method = isinstance(getattr(runtime, '__self__', None), type)
        if (probably_class_method and (not stub.is_class)):
            (yield 'runtime is a classmethod but stub is not')
        if ((not probably_class_method) and stub.is_class):
            (yield 'stub is a classmethod but runtime is not')
        return
    static_runtime = importlib.import_module(object_path[0])
    for entry in object_path[1:]:
        try:
            static_runtime = inspect.getattr_static(static_runtime, entry)
        except AttributeError:
            return
    if (isinstance(static_runtime, classmethod) and (not stub.is_class)):
        (yield 'runtime is a classmethod but stub is not')
    if ((not isinstance(static_runtime, classmethod)) and stub.is_class):
        (yield 'stub is a classmethod but runtime is not')
    if (isinstance(static_runtime, staticmethod) and (not stub.is_static)):
        (yield 'runtime is a staticmethod but stub is not')
    if ((not isinstance(static_runtime, staticmethod)) and stub.is_static):
        (yield 'stub is a staticmethod but runtime is not')
def _verify_static_class_methods(stub: nodes.FuncBase, runtime: Any, object_path: List[str]) -> Iterator[str]:
    if (stub.name in ('__new__', '__init_subclass__', '__class_getitem__')):
        return
    if inspect.isbuiltin(runtime):
        probably_class_method = isinstance(getattr(runtime, '__self__', None), type)
        if (probably_class_method and (not stub.is_class)):
            (yield 'runtime is a classmethod but stub is not')
        if ((not probably_class_method) and stub.is_class):
            (yield 'stub is a classmethod but runtime is not')
        return
    static_runtime = importlib.import_module(object_path[0])
    for entry in object_path[1:]:
        try:
            static_runtime = inspect.getattr_static(static_runtime, entry)
        except AttributeError:
            return
    if (isinstance(static_runtime, classmethod) and (not stub.is_class)):
        (yield 'runtime is a classmethod but stub is not')
    if ((not isinstance(static_runtime, classmethod)) and stub.is_class):
        (yield 'stub is a classmethod but runtime is not')
    if (isinstance(static_runtime, staticmethod) and (not stub.is_static)):
        (yield 'runtime is a staticmethod but stub is not')
    if ((not isinstance(static_runtime, staticmethod)) and stub.is_static):
        (yield 'stub is a staticmethod but runtime is not')