protected function Twig_Extension_Core::getTestNodeClass

1 call to Twig_Extension_Core::getTestNodeClass()

File

drupal/core/vendor/twig/twig/lib/Twig/Extension/Core.php, line 280

Class

Twig_Extension_Core

Code

protected function getTestNodeClass(Twig_Parser $parser, $name, $line) {
  $env = $parser
    ->getEnvironment();
  $testMap = $env
    ->getTests();
  if (!isset($testMap[$name])) {
    $message = sprintf('The test "%s" does not exist', $name);
    if ($alternatives = $env
      ->computeAlternatives($name, array_keys($env
      ->getTests()))) {
      $message = sprintf('%s. Did you mean "%s"', $message, implode('", "', $alternatives));
    }
    throw new Twig_Error_Syntax($message, $line, $parser
      ->getFilename());
  }
  if ($testMap[$name] instanceof Twig_SimpleTest) {
    return $testMap[$name]
      ->getNodeClass();
  }
  return $testMap[$name] instanceof Twig_Test_Node ? $testMap[$name]
    ->getClass() : 'Twig_Node_Expression_Test';
}