gc<ClassObject> AtomObject::getClass(VM& vm) const { switch (atom_) { case ATOM_FALSE: case ATOM_TRUE: return vm.getClass(CLASS_BOOL); case ATOM_NOTHING: return vm.getClass(CLASS_NOTHING); case ATOM_DONE: return vm.getClass(CLASS_DONE); case ATOM_NO_METHOD: ASSERT(false, "NO_METHOD shouldn't be in AtomObject."); } ASSERT(false, "Unexpected atom value."); return NULL; }
gc<ClassObject> StringObject::getClass(VM& vm) const { return vm.getClass(CLASS_STRING); }
gc<ClassObject> ListObject::getClass(VM& vm) const { return vm.getClass(CLASS_LIST); }
gc<ClassObject> RecordObject::getClass(VM& vm) const { return vm.getClass(CLASS_RECORD); }
gc<ClassObject> FunctionObject::getClass(VM& vm) const { return vm.getClass(CLASS_FUNCTION); }
gc<ClassObject> IntObject::getClass(VM& vm) const { return vm.getClass(CLASS_INT); }
gc<ClassObject> ClassObject::getClass(VM& vm) const { return vm.getClass(CLASS_CLASS); }
gc<ClassObject> FloatObject::getClass(VM& vm) const { return vm.getClass(CLASS_FLOAT); }
gc<ClassObject> CharacterObject::getClass(VM& vm) const { return vm.getClass(CLASS_CHAR); }
gc<ClassObject> ChannelObject::getClass(VM& vm) const { return vm.getClass(CLASS_CHANNEL); }
gc<ClassObject> StreamObject::getClass(VM& vm) const { return vm.getClass(CLASS_STREAM); }
gc<ClassObject> FileObject::getClass(VM& vm) const { return vm.getClass(CLASS_FILE); }
gc<ClassObject> BufferObject::getClass(VM& vm) const { return vm.getClass(CLASS_BUFFER); }