/**
  * @param Definition $definition
  * @param InjectionPoint $ip
  * @return Node\Expr\MethodCall
  */
 private function compileParamInjectionPoint(Definition $definition, InjectionPoint $ip)
 {
     $hasInjectionPoint = false;
     if ($definition instanceof Definition\ClosureDefinition) {
         $hasInjectionPoint = $definition->hasInjectionPointParam();
     } else {
         if ($definition instanceof Definition\DataDefinition) {
             $hasInjectionPoint = $definition->hasInjectionPointParam();
         }
     }
     $args = array();
     if ($hasInjectionPoint) {
         $args[] = new Node\Arg(new Node\Scalar\String_($ip->class));
         if ($ip->method) {
             $args[] = new Node\Arg(new Node\Scalar\String_($ip->method));
         }
     }
     return new Node\Expr\MethodCall(new Node\Expr\Variable('this'), $definition->getIdentifier(), $args);
 }