def get_name(self, node: ast.Name) -> Value:
    if (self.visitor is not None):
        (val, _) = self.visitor.resolve_name(node, error_node=(node if self.use_name_node_for_error else self.node), suppress_errors=self.should_suppress_undefined_names)
        return val
    elif (self.globals is not None):
        if (node.id in self.globals):
            return KnownValue(self.globals[node.id])
        elif hasattr(builtins, node.id):
            return KnownValue(getattr(builtins, node.id))
    if self.should_suppress_undefined_names:
        return AnyValue(AnySource.inference)
    self.show_error(f'Undefined name {node.id!r} used in annotation', ErrorCode.undefined_name, node=node)
    return AnyValue(AnySource.error)
def get_name(self, node: ast.Name) -> Value:
    if (self.visitor is not None):
        (val, _) = self.visitor.resolve_name(node, error_node=(node if self.use_name_node_for_error else self.node), suppress_errors=self.should_suppress_undefined_names)
        return val
    elif (self.globals is not None):
        if (node.id in self.globals):
            return KnownValue(self.globals[node.id])
        elif hasattr(builtins, node.id):
            return KnownValue(getattr(builtins, node.id))
    if self.should_suppress_undefined_names:
        return AnyValue(AnySource.inference)
    self.show_error(f'Undefined name {node.id!r} used in annotation', ErrorCode.undefined_name, node=node)
    return AnyValue(AnySource.error)