Example #1
0
 /**
  * Throws an exception with detailled error message in case of argument parse errors.
  * 
  * @param Twig_Node_Expression $argument The invalid/unexpected argument node.
  * @param Twig_Node_Expression $node The Filter or Function node to which the $argument belongs.
  * @throws InvalidArgumentException (The main purpose.)
  * @throws LogicException In case an unexpected $node argument was passed.
  */
 protected function invalidArgumentTypeParseError(Twig_Node_Expression $argument, Twig_Node_Expression $node)
 {
     switch (true) {
         case $node instanceof Twig_Node_Expression_Function:
             $name = $node->getAttribute('name');
             break;
         case $node instanceof Twig_Node_Expression_Filter:
             $name = $node->getNode('filter')->getAttribute('value');
             break;
         default:
             throw new LogicException(sprintf("Don't know how to get name of node %s to throw an InvalidArgumentException", get_class($node)));
     }
     throw new InvalidArgumentException(sprintf('Invalid argument of type %s for %s in %s on line %d', get_class($argument), $name, $this->file, $node->getLine()));
 }