code: public function resolve(Tokens $tokens, $typeName)
      {
          // First match explicit imports:
          $useMap = $this->getUseMapFromTokens($tokens);
          foreach ($useMap as $shortName => $fullName) {
              $regex = '/^\\\\?'.preg_quote($fullName, '/').'$/';
              if (Preg::match($regex, $typeName)) {
                  return $shortName;
              }
          }
  
          // Next try to match (partial) classes inside the same namespace
          // For now only support one namespace per file:
          $namespaces = $this->getNamespacesFromTokens($tokens);
          if (1 === \count($namespaces)) {
              foreach ($namespaces as $fullName) {
                  $matches = [];
                  $regex = '/^\\\\?'.preg_quote($fullName, '/').'\\\\(?P<className>.+)$/';
                  if (Preg::match($regex, $typeName, $matches)) {
                      return $matches['className'];
                  }
              }
          }
  
          // Next: Try to match partial use statements:
  
          foreach ($useMap as $shortName => $fullName) {
              $matches = [];
              $regex = '/^\\\\?'.preg_quote($fullName, '/').'\\\\(?P<className>.+)$/';
              if (Preg::match($regex, $typeName, $matches)) {
                  return $shortName.'\\'.$matches['className'];
              }
          }
  
          return $typeName;
      }
docs: This method will resolve the shortName of a FQCN if possible or otherwise return the inserted type name.
  E.g.: use Foo\Bar => "Bar".
  
  @param Tokens $tokens
  @param string $typeName
  
  @return string