public static Cons walkNewTree(Cons tree, Object [] MV_returnarray) {
    { Stella_Object operator = tree.value;
      Stella_Object classtree = tree.rest.value;
      Stella_Object baseclassname = (Stella_Object.consP(classtree) ? ((Cons)(classtree)).value : classtree);
      Cons keywordarguments = tree.rest.rest;
      Symbol selfvariable = Stella.localGensym("SELF");
      StandardObject classtype = null;
      Cons newtree = null;

      if ((!Stella_Object.symbolP(baseclassname)) &&
          (!Stella_Object.keywordP(baseclassname))) {
        { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

          try {
            Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
            Stella.signalTranslationError();
            if (!(Stella.suppressWarningsP())) {
              Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
              {
                Stella.STANDARD_ERROR.nativeStream.println();
                Stella.STANDARD_ERROR.nativeStream.println(" Illegal argument to `" + Stella_Object.deUglifyParseTree(operator) + "' where symbol expected:  `" + Stella_Object.deUglifyParseTree(baseclassname) + "'.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
          }
        }
        return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_UNKNOWN, MV_returnarray));
      }
      classtype = Stella_Object.safeYieldTypeSpecifier(classtree);
      if (StandardObject.typeSpecToClass(classtype) == null) {
        { Object old$PrintreadablyP$001 = Stella.$PRINTREADABLYp$.get();

          try {
            Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
            Stella.signalTranslationError();
            if (!(Stella.suppressWarningsP())) {
              Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
              {
                Stella.STANDARD_ERROR.nativeStream.println();
                Stella.STANDARD_ERROR.nativeStream.println(" Undefined class supplied to `" + Stella_Object.deUglifyParseTree(operator) + "' operator: `" + Stella_Object.deUglifyParseTree(baseclassname) + "'.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
          }
        }
        return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_UNKNOWN, MV_returnarray));
      }
      if (!(Stella_Object.typeP(classtype))) {
        classtype = StandardObject.computeRelativeTypeSpec(classtype, Stella.getCurrentSelfType());
      }
      if (StandardObject.typeSpecToClass(classtype).abstractP) {
        { Object old$PrintreadablyP$002 = Stella.$PRINTREADABLYp$.get();

          try {
            Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
            Stella.signalTranslationError();
            if (!(Stella.suppressWarningsP())) {
              Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
              {
                Stella.STANDARD_ERROR.nativeStream.println();
                Stella.STANDARD_ERROR.nativeStream.println(" Trying to create an instance of the ABSTRACT class `" + Stella_Object.deUglifyParseTree(baseclassname) + "'.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$002);
          }
        }
        return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_UNKNOWN, MV_returnarray));
      }
      { Cons requiredargs = null;
        Cons otherassignments = null;

        { Object [] caller_MV_returnarray = new Object[1];

          requiredargs = Cons.yieldNewArgumentsTree(keywordarguments, classtype, selfvariable, caller_MV_returnarray);
          otherassignments = ((Cons)(caller_MV_returnarray[0]));
        }
        newtree = Cons.list$(Cons.cons(Stella.SYM_STELLA_SYS_NEW, Cons.cons(classtype, Cons.cons(requiredargs.concatenate(Stella.NIL, Stella.NIL), Stella.NIL))));
        if (otherassignments == Stella.NIL) {
          { Cons _return_temp = newtree;

            MV_returnarray[0] = classtype;
            return (_return_temp);
          }
        }
        else {
          { Cons _return_temp = Cons.list$(Cons.cons(Stella.SYM_STELLA_VRLET, Cons.cons(Cons.cons(Cons.cons(selfvariable, Cons.cons(newtree, Stella.NIL)), Stella.NIL), Cons.cons(otherassignments.concatenate(Cons.cons(selfvariable, Stella.NIL), Stella.NIL), Stella.NIL))));

            MV_returnarray[0] = classtype;
            return (_return_temp);
          }
        }
      }
    }
  }