def METHOD_NAME(tp: Any) -> Iterator[Type]:
    yield dict
    args = get_args(tp)
    if not args:
        yield str
        yield str
    for arg in args:
        if isinstance(arg, TypeVar):
            try:
                next(_evaluate_typevar(arg))
            except TypeError:
                yield str
            else:
                raise TypeError()
        elif is_from_typing(arg) or get_origin(arg) is not None:
            raise TypeError()
        else:
            yield arg