public static Cons walkSlotValueSetterTree(Cons tree, Object [] MV_returnarray) {
    { Stella_Object objectref = null;
      StandardObject objecttype = null;

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

        objectref = Stella_Object.walkATree(tree.rest.value, caller_MV_returnarray);
        objecttype = ((StandardObject)(caller_MV_returnarray[0]));
      }
      { Stella_Object slotname = tree.fourth();
        Cons csoptions = tree.nthRest(4);
        Stella_Class objectclass = StandardObject.typeSpecToClass(objecttype);
        Slot slot = Stella_Class.lookupSlot(objectclass, ((Symbol)(slotname)));
        Stella_Object valueref = null;
        Cons otree = null;
        StandardObject otype = null;

        if (slot == null) {
          { 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(" Can't set a non-existent slot `" + Stella_Object.deUglifyParseTree(slotname) + "'");
                  Stella.STANDARD_ERROR.nativeStream.println("   on the class `" + Stella_Class.className(objectclass) + "'.");
                }
;
              }

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
            }
          }
          return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_VOID, MV_returnarray));
        }
        { Surrogate testValue000 = Stella_Object.safePrimaryType(slot);

          if (Surrogate.subtypeOfMethodSlotP(testValue000)) {
            { MethodSlot slot000 = ((MethodSlot)(slot));

              { 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(" Can't set the method slot `" + Stella_Object.deUglifyParseTree(slot000) + "' by calling 'slot-value-setter'.");
                    }
;
                  }

                } finally {
                  Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
                }
              }
              return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_VOID, MV_returnarray));
            }
          }
          else if (Surrogate.subtypeOfStorageSlotP(testValue000)) {
            { StorageSlot slot000 = ((StorageSlot)(slot));

              otype = slot000.computeReturnTypeSpec(objecttype);
              valueref = Stella_Object.walkExpressionTree(tree.rest.rest.value, otype, Stella.SYM_STELLA_SLOT_VALUE_SETTER, false, new Object[1]);
              { Object [] caller_MV_returnarray = new Object[1];

                otree = StorageSlot.yieldSlotValueSetterTree(slot000, objectref, objecttype, valueref, otype, csoptions, caller_MV_returnarray);
                otype = ((StandardObject)(caller_MV_returnarray[0]));
              }
              if (Stella_Object.proceduralExpressionP(otree)) {
                { Cons _return_temp = otree;

                  MV_returnarray[0] = otype;
                  return (_return_temp);
                }
              }
              else {
                { Stella_Object value000 = null;
                  StandardObject value001 = null;

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

                    value000 = Slot.sysTreeIfNeeded(slot000, otree, objecttype, otype, caller_MV_returnarray);
                    value001 = ((StandardObject)(caller_MV_returnarray[0]));
                  }
                  { Cons _return_temp = ((Cons)(value000));

                    MV_returnarray[0] = value001;
                    return (_return_temp);
                  }
                }
              }
            }
          }
          else {
            { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

              stream000.nativeStream.print("`" + testValue000 + "' is not a valid case option");
              throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
            }
          }
        }
      }
    }
  }