code: def type_id_for_unbound_type(
      type_: UnboundType,
      cls: ClassDef,
      api: SemanticAnalyzerPluginInterface,
  ) -> Optional[int]:
      sym = api.lookup_qualified(type_.name, type_)
      if sym is not None:
          if isinstance(sym.node, TypeAlias):
              target_type = get_proper_type(sym.node.target)
              if isinstance(target_type, Instance):
                  return type_id_for_named_node(target_type.type)
          elif isinstance(sym.node, TypeInfo):
              return type_id_for_named_node(sym.node)
  
      return None
  
imports: from __future__ import annotations
  from typing import Dict
  from typing import List
  from typing import Optional
  from typing import Set
  from typing import Tuple
  from typing import Union
  from mypy.nodes import ARG_POS
  from mypy.nodes import CallExpr
  from mypy.nodes import ClassDef
  from mypy.nodes import Decorator
  from mypy.nodes import Expression
  from mypy.nodes import FuncDef
  from mypy.nodes import MemberExpr
  from mypy.nodes import NameExpr
  from mypy.nodes import OverloadedFuncDef
  from mypy.nodes import SymbolNode
  from mypy.nodes import TypeAlias
  from mypy.nodes import TypeInfo
  from mypy.plugin import SemanticAnalyzerPluginInterface
  from mypy.types import CallableType
  from mypy.types import get_proper_type
  from mypy.types import Instance
  from mypy.types import UnboundType
  from ...None import util
label_desc: Use image node_id 3 for calling a global function with example usage: type_id_for_unbound_type(type_, cls, api) and returns: None, type_id_for_named_node, type_id_for_named_node