| 282 | } |
| 283 | |
| 284 | void RefToString(VM &vm, string &sd, const RefObj *ro, PrintPrefs &pp) { |
| 285 | if (!ro) { sd += "nil"; return; } |
| 286 | auto &roti = ro->ti(vm); |
| 287 | switch (roti.t) { |
| 288 | case RTT_STRING: ((LString *)ro)->ToString(sd, pp); break; |
| 289 | case RTT_VECTOR: ((LVector *)ro)->ToString(vm, sd, pp); break; |
| 290 | case RTT_CLASS: ((LObject *)ro)->ToString(vm, sd, pp); break; |
| 291 | case RTT_RESOURCE: ((LResource *)ro)->ToString(sd); break; |
| 292 | default: append(sd, "(", BaseTypeName(roti.t), ")"); break; |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | void Value::ToString(VM &vm, string &sd, const TypeInfo &ti, PrintPrefs &pp) const { |
| 297 | if (ti.t == RTT_INT && ti.enumidx >= 0 && vm.EnumName(sd, ival(), ti.enumidx)) return; |
no test coverage detected