public Stella_Object finishWalkingCallSlotTree(Cons tree, StandardObject firstargtype, Object [] MV_returnarray) {
    { StorageSlot self = this;

      { Stella_Object objectref = tree.rest.value;
        StandardObject otype = self.computeReturnTypeSpec(firstargtype);

        if (self.reader() != null) {
          tree.firstSetter(self.reader());
          return (Cons.walkAConsTree(tree, MV_returnarray));
        }
        if (StorageSlot.systemDefinedSlotReaderP(self)) {
          { Stella_Object _return_temp = Cons.list$(Cons.cons(Stella.SYM_STELLA_SYS_CALL_METHOD, Cons.cons(self.slotOwner, Cons.cons(Cons.cons(self.slotName, Cons.cons(objectref, Stella.NIL)), Stella.NIL))));

            MV_returnarray[0] = otype;
            return (_return_temp);
          }
        }
        else {
          { Stella_Object _return_temp = StorageSlot.yieldSlotValueTree(self, objectref, firstargtype, otype, null, new Object[1]);

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