code: def __call__(self, *inputs):
      from ..core import Tensor
  
      src, dst, where = self._extract_inputs(inputs)
  
      if not isinstance(dst, Tensor):
          raise TypeError("dst has to be a Tensor")
  
      self.dtype = dst.dtype
      self.gpu = dst.op.gpu
      self.sparse = dst.issparse()
  
      if not np.can_cast(src.dtype, dst.dtype, casting=self.casting):
          raise TypeError(
              f"Cannot cast array from {src.dtype!r} to {dst.dtype!r} "
              f"according to the rule {self.casting!s}"
          )
  
      try:
          broadcast_to(src, dst.shape)
      except ValueError:
          raise ValueError(
              "could not broadcast input array "
              f"from shape {src.shape!r} into shape {dst.shape!r}"
          )
      if where:
          try:
              broadcast_to(where, dst.shape)
          except ValueError:
              raise ValueError(
                  "could not broadcast where mask "
                  f"from shape {src.shape!r} into shape {dst.shape!r}"
              )
  
      inps = [src, dst]
      if where is not None:
          inps.append(where)
      ret = self.new_tensor(inps, dst.shape, order=dst.order)
      dst.data = ret.data
  
imports: import itertools
  import numpy
  from ...None import opcodes
  from ...serialization.serializables import KeyField, StringField
  from ...utils import has_unknown_shape
  from ..utils import unify_chunks, broadcast_shape
  from ..operands import TensorOperand, TensorOperandMixin
  from ..datasource import tensor
  from .broadcast_to import broadcast_to
  from ..array_utils import as_same_device, device
label_desc: Use image node_id 9 for calling the TensorCopyTo obj's underlying member method code with example usage: obj.__call__() without return types