out.print(".toValue()"); }
  private void generateImpl(PhpWriter out, Expr funExpr, Expr []args)    throws IOException  {    String var = out.addModule(_quercusModule);        if (Modifier.isStatic(_method.getModifiers()))      out.print(_method.getDeclaringClass().getName());    else      out.print(var);    out.print("." + _method.getName() + "(");    Class []param = _method.getParameterTypes();    boolean isFirst = true;    if (_hasEnv) {      out.print("env");      isFirst = false;    }    for (int i = 0; i < _defaultExprs.length; i++) {      if (! isFirst)	out.print(", ");      isFirst = false;	      if (i < args.length)	_marshallArgs[i].generate(out, args[i], param[_hasEnv ? i + 1 : i]);      else if (_defaultExprs[i] != null)	_marshallArgs[i].generate(out, _defaultExprs[i], param[_hasEnv ? i + 1 : i]);      else if (! _hasRestArgs)	throw new IOException(L.l(funExpr.getLocation() +				  "argument length mismatch for '{0}'",				  _method.getName()));    }    if (_hasRestArgs) {      if (! isFirst)	out.print(", ");      isFirst = false;      out.print("new Value[] {");      for (int i = _marshallArgs.length; i < args.length; i++) {	if (_isRestReference)	  args[i].generateRef(out);	else	  args[i].generate(out);	out.print(", ");      }      out.print("}");    }    out.print(")");  }