public static Cons walkNonBuiltInCaseTree(Cons tree, Symbol equalitytest, Object [] MV_returnarray) {
    { Stella_Object testexpression = tree.rest.value;
      Stella_Object testvariable = ((Stella_Object.atomicExpressionP(testexpression) ||
          (Cons.countCaseTestClauses(tree, new Object[1]) <= 1)) ? tree.rest.value : Stella.localGensym("TEST-VALUE"));
      Cons conditions = tree.rest.rest;

      { Cons cond = null;
        Cons iter000 = ((Cons)(conditions));

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          cond = ((Cons)(iter000.value));
          cond.firstSetter(Stella_Object.yieldCondTestOrTests(cond.value, testvariable, equalitytest));
        }
      }
      conditions = Cons.attachUnhandledCaseErrorClause(conditions, testvariable);
      return (Cons.walkAConsTree((Stella_Object.eqlP(testexpression, testvariable) ? Cons.cons(Stella.SYM_STELLA_COND, conditions.concatenate(Stella.NIL, Stella.NIL)) : Cons.list$(Cons.cons(Stella.SYM_STELLA_LET, Cons.cons(Cons.cons(Cons.cons(testvariable, Cons.cons(testexpression, Stella.NIL)), Stella.NIL), Cons.cons(Cons.cons(Stella.SYM_STELLA_COND, conditions.concatenate(Stella.NIL, Stella.NIL)), Cons.cons(Stella.NIL, Stella.NIL)))))), MV_returnarray));
    }
  }