def _verify_arg_default_value(stub_arg: nodes.Argument, runtime_arg: inspect.Parameter) -> Iterator[str]:
    'Checks whether argument default values are compatible.'
    if (runtime_arg.default != inspect.Parameter.empty):
        if (stub_arg.kind not in (nodes.ARG_OPT, nodes.ARG_NAMED_OPT)):
            (yield 'runtime argument "{}" has a default value but stub argument does not'.format(runtime_arg.name))
        else:
            runtime_type = get_mypy_type_of_runtime_value(runtime_arg.default)
            stub_type = (stub_arg.variable.type or stub_arg.type_annotation)
            if isinstance(stub_type, mypy.types.TypeVarType):
                stub_type = stub_type.upper_bound
            if ((runtime_type is not None) and (stub_type is not None) and (type(runtime_arg.default) != object) and (not is_subtype_helper(runtime_type, stub_type))):
                (yield 'runtime argument "{}" has a default value of type {}, which is incompatible with stub argument type {}'.format(runtime_arg.name, runtime_type, stub_type))
    elif (stub_arg.kind in (nodes.ARG_OPT, nodes.ARG_NAMED_OPT)):
        (yield 'stub argument "{}" has a default value but runtime argument does not'.format(stub_arg.variable.name))
Checks whether argument default values are compatible.
def _verify_arg_default_value(stub_arg: nodes.Argument, runtime_arg: inspect.Parameter) -> Iterator[str]:
    
    if (runtime_arg.default != inspect.Parameter.empty):
        if (stub_arg.kind not in (nodes.ARG_OPT, nodes.ARG_NAMED_OPT)):
            (yield 'runtime argument "{}" has a default value but stub argument does not'.format(runtime_arg.name))
        else:
            runtime_type = get_mypy_type_of_runtime_value(runtime_arg.default)
            stub_type = (stub_arg.variable.type or stub_arg.type_annotation)
            if isinstance(stub_type, mypy.types.TypeVarType):
                stub_type = stub_type.upper_bound
            if ((runtime_type is not None) and (stub_type is not None) and (type(runtime_arg.default) != object) and (not is_subtype_helper(runtime_type, stub_type))):
                (yield 'runtime argument "{}" has a default value of type {}, which is incompatible with stub argument type {}'.format(runtime_arg.name, runtime_type, stub_type))
    elif (stub_arg.kind in (nodes.ARG_OPT, nodes.ARG_NAMED_OPT)):
        (yield 'stub argument "{}" has a default value but runtime argument does not'.format(stub_arg.variable.name))