public static Cons walkCastTree(Cons tree, Object [] MV_returnarray) {
    if (Cons.badArgumentCountP(tree, 2)) {
      return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_UNKNOWN, MV_returnarray));
    }
    { StandardObject typespec = tree.rest.rest.value.yieldTypeSpecifier();

      tree.secondSetter(Stella_Object.walkExpressionTree(tree.rest.value, Stella.SGT_STELLA_UNKNOWN, Stella.SYM_STELLA_CAST, true, new Object[1]));
      if (Stella_Object.vrletExpressionP(tree.rest.value)) {
        return (Cons.percolateOutVrletExpression(tree, ((Cons)(tree.rest.value)), typespec, MV_returnarray));
      }
      tree.thirdSetter(typespec);
      if ((((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_COMMON_LISP) &&
          ((tree.value == Stella.SYM_STELLA_CAST) &&
           (((Integer)(Stella.$SAFETY$.get())).intValue() >= 2))) {
        GeneralizedSymbol.registerSymbol(StandardObject.typeSpecToBaseType(typespec));
      }
      { Cons _return_temp = tree;

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