public static Cons walkSetqTree(Cons tree, Object [] MV_returnarray) {
    if (Cons.badArgumentCountP(tree, 2)) {
      return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_VOID, MV_returnarray));
    }
    { Stella_Object variable = tree.rest.value;
      Stella_Object value = tree.rest.rest.value;
      StandardObject variabletype = null;
      Stella_Object ovalue = null;
      StandardObject otype = null;

      if (!(Stella_Object.symbolP(variable))) {
        { 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 first argument to 'setq'; should be a symbol: `" + Stella_Object.deUglifyParseTree(variable) + "'.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
          }
        }
        return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_VOID, MV_returnarray));
      }
      variabletype = Symbol.lookupVariableType(((Symbol)(variable)));
      { Object [] caller_MV_returnarray = new Object[1];

        ovalue = Stella_Object.walkExpressionTree(value, variabletype, Stella.SYM_STELLA_SETQ, true, caller_MV_returnarray);
        otype = ((StandardObject)(caller_MV_returnarray[0]));
      }
      tree.thirdSetter(ovalue);
      if (!(Stella_Object.proceduralExpressionP(ovalue))) {
        tree.secondSetter(Symbol.trueVariableName(((Symbol)(variable))));
        if (Stella.walkingExpressionP() &&
            (!(((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_COMMON_LISP))) {
          return (Cons.setTargetLanguageType(Stella_Object.sysTree(tree, otype, new Object[1]), StandardObject.typeSpecToBaseType(variabletype), MV_returnarray));
        }
        if (!Stella_Object.eqlP(variable, tree.rest.value)) {
          return (Stella_Object.sysTree(tree, otype, MV_returnarray));
        }
        else {
          { Cons _return_temp = tree;

            MV_returnarray[0] = otype;
            return (_return_temp);
          }
        }
      }
      return (Cons.transformProceduralExpression(tree, ((Cons)(ovalue)), ((otype == Stella.SGT_STELLA_UNKNOWN) ? variabletype : otype), MV_returnarray));
    }
  }