diff --git a/deps/ox/src/ox/model/typestore.hpp b/deps/ox/src/ox/model/typestore.hpp index e27f0e37..3646c3b0 100644 --- a/deps/ox/src/ox/model/typestore.hpp +++ b/deps/ox/src/ox/model/typestore.hpp @@ -58,7 +58,11 @@ class TypeStore { if (!std::is_constant_evaluated()) { OX_REQUIRE_M(dt, loadDescriptor(typeId)); for (auto &f : dt->fieldList) { - OX_RETURN_ERROR(this->getLoad(f.typeId).moveTo(f.type)); + if (typeId == f.typeId) { + f.type = dt.get(); + } else { + OX_RETURN_ERROR(this->getLoad(f.typeId).moveTo(f.type)); + } } auto &out = m_cache[typeId]; out = std::move(dt);