Type::Type(const RuntimeType& rtt) : m_bits(bitsFromDataType(rtt.outerType(), rtt.innerType())) , m_class(nullptr) { if (rtt.outerType() == KindOfObject && rtt.hasKnownClass()) { m_class = rtt.knownClass(); } else if (rtt.outerType() == KindOfArray && rtt.hasArrayKind()) { m_arrayKindValid = true; m_arrayKind = rtt.arrayKind(); } }
Type::Type(const RuntimeType& rtt) : m_bits(bitsFromDataType(rtt.outerType(), rtt.innerType())) , m_hasConstVal(false) , m_class(nullptr) { if (rtt.outerType() == KindOfObject && rtt.hasKnownClass()) { m_class = rtt.knownClass(); } else if (rtt.outerType() == KindOfArray && rtt.hasArrayKind()) { m_arrayInfo = makeArrayInfo(rtt.arrayKind(), nullptr); } }
Type Type::fromRuntimeType(const RuntimeType& rtt) { return fromDataType(rtt.outerType(), rtt.innerType(), rtt.knownClass()); }