private void specialHandlingFor_IGosuObject_BasedMethods(IFunctionSymbol symbol) {
   if (symbol.getType() instanceof IFunctionType) {
     IFunctionType ft = (IFunctionType) symbol.getType();
     if (ft.getScriptPart() != null
         && ft.getScriptPart().getContainingType()
             == IGosuClassInternal.Util.getGosuClassFrom(JavaTypes.IGOSU_OBJECT())) {
       _symbol =
           new GosuObjectFunctionSymbol(
               (IGosuClassInternal) ft.getScriptPart().getContainingType(),
               (DynamicFunctionSymbol) _symbol);
     }
   }
 }
  @Override
  public String toString() {
    String strOut = (_symbol == null ? "#err" : _symbol.getDisplayName()) + "(";

    if (_args != null && _args.length > 0) {
      strOut += " ";
      for (int i = 0; i < _args.length; i++) {
        if (i != 0) {
          strOut += ", ";
        }
        strOut += _args[i].toString();
      }
      strOut += " ";
    }

    return strOut += ")";
  }
 public boolean isFromJava() {
   return _symbol.isFromJava();
 }
 public boolean isBlockInvocation() {
   return _symbol.getType() instanceof IBlockType;
 }