[vm] Unify nullability and type state among all types
This change moves 'nullability' and 'type_state' from all kinds of
types to AbstractType base class. This removes a lot of code
duplication and allows uniform access to nullability and type state
for all kinds of types.
TEST=ci
Fixes https://github.com/dart-lang/sdk/issues/47034
Change-Id: I1f0dc7fda78426db83fec6a20ebebcd632ad6d99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260662
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/vm/app_snapshot.cc b/runtime/vm/app_snapshot.cc
index ad17e41..44e2d74 100644
--- a/runtime/vm/app_snapshot.cc
+++ b/runtime/vm/app_snapshot.cc
@@ -4046,10 +4046,6 @@
}
};
-// Used to pack nullability into other serialized values.
-static constexpr intptr_t kNullabilityBitSize = 2;
-static constexpr intptr_t kNullabilityBitMask = (1 << kNullabilityBitSize) - 1;
-
#if !defined(DART_PRECOMPILED_RUNTIME)
class TypeSerializationCluster
: public CanonicalSetSerializationCluster<
@@ -4073,9 +4069,9 @@
PushFromTo(type);
- ASSERT(type->untag()->type_class_id_ != kIllegalCid);
+ ASSERT(type->untag()->type_class_id() != kIllegalCid);
ClassPtr type_class =
- s->isolate_group()->class_table()->At(type->untag()->type_class_id_);
+ s->isolate_group()->class_table()->At(type->untag()->type_class_id());
s->Push(type_class);
}
@@ -4108,7 +4104,7 @@
// Keep in sync with Type::Canonicalize.
virtual bool IsInCanonicalSet(Serializer* s, TypePtr type) {
ClassPtr type_class =
- s->isolate_group()->class_table()->At(type->untag()->type_class_id_);
+ s->isolate_group()->class_table()->At(type->untag()->type_class_id());
if (type_class->untag()->declaration_type() != type) {
return true;
}
@@ -4123,25 +4119,12 @@
#if defined(DART_PRECOMPILER)
if (FLAG_write_v8_snapshot_profile_to != nullptr) {
ClassPtr type_class =
- s->isolate_group()->class_table()->At(type->untag()->type_class_id_);
+ s->isolate_group()->class_table()->At(type->untag()->type_class_id());
s->AttributePropertyRef(type_class, "<type_class>");
}
#endif
WriteFromTo(type);
- COMPILE_ASSERT(
- std::is_unsigned<decltype(UntaggedType::type_class_id_)>::value);
- s->WriteUnsigned(type->untag()->type_class_id_);
- ASSERT(type->untag()->type_state_ < (1 << UntaggedType::kTypeStateBitSize));
- ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize));
- static_assert(UntaggedType::kTypeStateBitSize + kNullabilityBitSize <=
- kBitsPerByte * sizeof(uint8_t),
- "Cannot pack type_state_ and nullability_ into a uint8_t");
- const uint8_t combined =
- (type->untag()->type_state_ << kNullabilityBitSize) |
- type->untag()->nullability_;
- ASSERT_EQUAL(type->untag()->type_state_, combined >> kNullabilityBitSize);
- ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask);
- s->Write<uint8_t>(combined);
+ s->WriteUnsigned(type->untag()->flags_);
}
};
#endif // !DART_PRECOMPILED_RUNTIME
@@ -4170,12 +4153,7 @@
Deserializer::InitializeHeader(type, kTypeCid, Type::InstanceSize(),
mark_canonical);
d.ReadFromTo(type);
- COMPILE_ASSERT(
- std::is_unsigned<decltype(UntaggedType::type_class_id_)>::value);
- type->untag()->type_class_id_ = d.ReadUnsigned();
- const uint8_t combined = d.Read<uint8_t>();
- type->untag()->type_state_ = combined >> kNullabilityBitSize;
- type->untag()->nullability_ = combined & kNullabilityBitMask;
+ type->untag()->flags_ = d.ReadUnsigned();
}
}
@@ -4257,19 +4235,8 @@
void WriteFunctionType(Serializer* s, FunctionTypePtr type) {
AutoTraceObject(type);
WriteFromTo(type);
- ASSERT(type->untag()->type_state_ <
- (1 << UntaggedFunctionType::kTypeStateBitSize));
- ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize));
- static_assert(
- UntaggedFunctionType::kTypeStateBitSize + kNullabilityBitSize <=
- kBitsPerByte * sizeof(uint8_t),
- "Cannot pack type_state_ and nullability_ into a uint8_t");
- const uint8_t combined =
- (type->untag()->type_state_ << kNullabilityBitSize) |
- type->untag()->nullability_;
- ASSERT_EQUAL(type->untag()->type_state_, combined >> kNullabilityBitSize);
- ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask);
- s->Write<uint8_t>(combined);
+ ASSERT(Utils::IsUint(8, type->untag()->flags_));
+ s->Write<uint8_t>(type->untag()->flags_);
s->Write<uint32_t>(type->untag()->packed_parameter_counts_);
s->Write<uint16_t>(type->untag()->packed_type_parameter_counts_);
}
@@ -4300,9 +4267,7 @@
Deserializer::InitializeHeader(
type, kFunctionTypeCid, FunctionType::InstanceSize(), mark_canonical);
d.ReadFromTo(type);
- const uint8_t combined = d.Read<uint8_t>();
- type->untag()->type_state_ = combined >> kNullabilityBitSize;
- type->untag()->nullability_ = combined & kNullabilityBitMask;
+ type->untag()->flags_ = d.Read<uint8_t>();
type->untag()->packed_parameter_counts_ = d.Read<uint32_t>();
type->untag()->packed_type_parameter_counts_ = d.Read<uint16_t>();
}
@@ -4386,18 +4351,8 @@
void WriteRecordType(Serializer* s, RecordTypePtr type) {
AutoTraceObject(type);
WriteFromTo(type);
- ASSERT(type->untag()->type_state_ <
- (1 << UntaggedRecordType::kTypeStateBitSize));
- ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize));
- static_assert(UntaggedRecordType::kTypeStateBitSize + kNullabilityBitSize <=
- kBitsPerByte * sizeof(uint8_t),
- "Cannot pack type_state_ and nullability_ into a uint8_t");
- const uint8_t combined =
- (type->untag()->type_state_ << kNullabilityBitSize) |
- type->untag()->nullability_;
- ASSERT_EQUAL(type->untag()->type_state_, combined >> kNullabilityBitSize);
- ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask);
- s->Write<uint8_t>(combined);
+ ASSERT(Utils::IsUint(8, type->untag()->flags_));
+ s->Write<uint8_t>(type->untag()->flags_);
}
};
#endif // !DART_PRECOMPILED_RUNTIME
@@ -4425,9 +4380,7 @@
Deserializer::InitializeHeader(
type, kRecordTypeCid, RecordType::InstanceSize(), mark_canonical);
d.ReadFromTo(type);
- const uint8_t combined = d.Read<uint8_t>();
- type->untag()->type_state_ = combined >> kNullabilityBitSize;
- type->untag()->nullability_ = combined & kNullabilityBitMask;
+ type->untag()->flags_ = d.Read<uint8_t>();
}
}
@@ -4534,16 +4487,20 @@
}
TypeRef& type_ref = TypeRef::Handle(d->zone());
+ AbstractType& type = AbstractType::Handle(d->zone());
Code& stub = Code::Handle(d->zone());
+ const bool includes_code = Snapshot::IncludesCode(d->kind());
- if (Snapshot::IncludesCode(d->kind())) {
- for (intptr_t id = start_index_, n = stop_index_; id < n; id++) {
- type_ref ^= refs.At(id);
+ for (intptr_t id = start_index_, n = stop_index_; id < n; id++) {
+ type_ref ^= refs.At(id);
+
+ // Refresh finalization state and nullability.
+ type = type_ref.type();
+ type_ref.set_type(type);
+
+ if (includes_code) {
type_ref.UpdateTypeTestingStubEntryPoint();
- }
- } else {
- for (intptr_t id = start_index_, n = stop_index_; id < n; id++) {
- type_ref ^= refs.At(id);
+ } else {
stub = TypeTestingStubGenerator::DefaultCodeForType(type_ref);
type_ref.InitializeTypeTestingStubNonAtomic(stub);
}
@@ -4599,16 +4556,8 @@
s->Write<int32_t>(type->untag()->parameterized_class_id_);
s->Write<uint8_t>(type->untag()->base_);
s->Write<uint8_t>(type->untag()->index_);
- ASSERT(type->untag()->flags_ < (1 << UntaggedTypeParameter::kFlagsBitSize));
- ASSERT(type->untag()->nullability_ < (1 << kNullabilityBitSize));
- static_assert(UntaggedTypeParameter::kFlagsBitSize + kNullabilityBitSize <=
- kBitsPerByte * sizeof(uint8_t),
- "Cannot pack flags_ and nullability_ into a uint8_t");
- const uint8_t combined = (type->untag()->flags_ << kNullabilityBitSize) |
- type->untag()->nullability_;
- ASSERT_EQUAL(type->untag()->flags_, combined >> kNullabilityBitSize);
- ASSERT_EQUAL(type->untag()->nullability_, combined & kNullabilityBitMask);
- s->Write<uint8_t>(combined);
+ ASSERT(Utils::IsUint(8, type->untag()->flags_));
+ s->Write<uint8_t>(type->untag()->flags_);
}
};
#endif // !DART_PRECOMPILED_RUNTIME
@@ -4641,9 +4590,7 @@
type->untag()->parameterized_class_id_ = d.Read<int32_t>();
type->untag()->base_ = d.Read<uint8_t>();
type->untag()->index_ = d.Read<uint8_t>();
- const uint8_t combined = d.Read<uint8_t>();
- type->untag()->flags_ = combined >> kNullabilityBitSize;
- type->untag()->nullability_ = combined & kNullabilityBitMask;
+ type->untag()->flags_ = d.Read<uint8_t>();
}
}
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index b5db3e7..c7a1028 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -659,6 +659,11 @@
AbstractType& unfinalized_type = AbstractType::Handle(zone);
if (super_type_arg.IsTypeRef()) {
unfinalized_type = TypeRef::Cast(super_type_arg).type();
+ if (unfinalized_type.IsFinalized()) {
+ super_type_arg.SetIsFinalized();
+ arguments.SetTypeAt(i, super_type_arg);
+ continue;
+ }
} else {
ASSERT(super_type_arg.IsType());
unfinalized_type = super_type_arg.ptr();
@@ -755,10 +760,13 @@
// is_being_finalized mark bit.
return type.ptr();
}
+ type.SetIsBeingFinalized();
AbstractType& ref_type =
AbstractType::Handle(zone, TypeRef::Cast(type).type());
ref_type = FinalizeType(ref_type, finalization, pending_types);
+ ASSERT(ref_type.IsFinalized());
TypeRef::Cast(type).set_type(ref_type);
+ ASSERT(type.IsFinalized());
return type.ptr();
}
@@ -1563,7 +1571,7 @@
Map(param->untag()->parameterized_class_id_);
} else if (obj->IsType()) {
TypePtr type = Type::RawCast(obj);
- type->untag()->type_class_id_ = Map(type->untag()->type_class_id_);
+ type->untag()->set_type_class_id(Map(type->untag()->type_class_id()));
} else {
intptr_t old_cid = obj->GetClassId();
intptr_t new_cid = Map(old_cid);
@@ -1619,7 +1627,7 @@
// In the Dart VM heap the following instances directly use cids for the
// computation of canonical hash codes:
//
-// * TypePtr (due to UntaggedType::type_class_id_)
+// * TypePtr (due to UntaggedType::type_class_id)
// * TypeParameterPtr (due to UntaggedTypeParameter::parameterized_class_id_)
//
// The following instances use cids for the computation of canonical hash codes
diff --git a/runtime/vm/compiler/asm_intrinsifier_arm.cc b/runtime/vm/compiler/asm_intrinsifier_arm.cc
index 7890761..de81be7 100644
--- a/runtime/vm/compiler/asm_intrinsifier_arm.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_arm.cc
@@ -1296,8 +1296,8 @@
// Check nullability.
__ Bind(&equiv_cids);
- __ ldrb(R1, FieldAddress(R1, target::Type::nullability_offset()));
- __ ldrb(R2, FieldAddress(R2, target::Type::nullability_offset()));
+ __ LoadAbstractTypeNullability(R1, R1);
+ __ LoadAbstractTypeNullability(R2, R2);
__ cmp(R1, Operand(R2));
__ b(&check_legacy, NE);
// Fall through to equal case if nullability is strictly equal.
diff --git a/runtime/vm/compiler/asm_intrinsifier_arm64.cc b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
index 0b9255d..ab1c62c 100644
--- a/runtime/vm/compiler/asm_intrinsifier_arm64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_arm64.cc
@@ -1463,10 +1463,8 @@
// Check nullability.
__ Bind(&equiv_cids);
- __ ldr(R1, FieldAddress(R1, target::Type::nullability_offset()),
- kUnsignedByte);
- __ ldr(R2, FieldAddress(R2, target::Type::nullability_offset()),
- kUnsignedByte);
+ __ LoadAbstractTypeNullability(R1, R1);
+ __ LoadAbstractTypeNullability(R2, R2);
__ cmp(R1, Operand(R2));
__ b(&check_legacy, NE);
// Fall through to equal case if nullability is strictly equal.
diff --git a/runtime/vm/compiler/asm_intrinsifier_ia32.cc b/runtime/vm/compiler/asm_intrinsifier_ia32.cc
index fa431d9..962fc62 100644
--- a/runtime/vm/compiler/asm_intrinsifier_ia32.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_ia32.cc
@@ -1432,8 +1432,8 @@
// Check nullability.
__ Bind(&equiv_cids);
- __ movzxb(EDI, FieldAddress(EDI, target::Type::nullability_offset()));
- __ movzxb(EBX, FieldAddress(EBX, target::Type::nullability_offset()));
+ __ LoadAbstractTypeNullability(EDI, EDI);
+ __ LoadAbstractTypeNullability(EBX, EBX);
__ cmpl(EDI, EBX);
__ j(NOT_EQUAL, &check_legacy, Assembler::kNearJump);
// Fall through to equal case if nullability is strictly equal.
diff --git a/runtime/vm/compiler/asm_intrinsifier_riscv.cc b/runtime/vm/compiler/asm_intrinsifier_riscv.cc
index e14eb6d..a7a4a7c 100644
--- a/runtime/vm/compiler/asm_intrinsifier_riscv.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_riscv.cc
@@ -1487,8 +1487,8 @@
// Check nullability.
__ Bind(&equiv_cids);
- __ lbu(A0, FieldAddress(A0, target::Type::nullability_offset()));
- __ lbu(A1, FieldAddress(A1, target::Type::nullability_offset()));
+ __ LoadAbstractTypeNullability(A0, A0);
+ __ LoadAbstractTypeNullability(A1, A1);
__ bne(A0, A1, &check_legacy);
// Fall through to equal case if nullability is strictly equal.
diff --git a/runtime/vm/compiler/asm_intrinsifier_x64.cc b/runtime/vm/compiler/asm_intrinsifier_x64.cc
index 24928d6..4e5953a 100644
--- a/runtime/vm/compiler/asm_intrinsifier_x64.cc
+++ b/runtime/vm/compiler/asm_intrinsifier_x64.cc
@@ -1341,8 +1341,8 @@
// Check nullability.
__ Bind(&equiv_cids);
- __ movzxb(RCX, FieldAddress(RCX, target::Type::nullability_offset()));
- __ movzxb(RDX, FieldAddress(RDX, target::Type::nullability_offset()));
+ __ LoadAbstractTypeNullability(RCX, RCX);
+ __ LoadAbstractTypeNullability(RDX, RDX);
__ cmpq(RCX, RDX);
__ j(NOT_EQUAL, &check_legacy, Assembler::kNearJump);
// Fall through to equal case if nullability is strictly equal.
diff --git a/runtime/vm/compiler/assembler/assembler_arm.h b/runtime/vm/compiler/assembler/assembler_arm.h
index 0101598..326f47c 100644
--- a/runtime/vm/compiler/assembler/assembler_arm.h
+++ b/runtime/vm/compiler/assembler/assembler_arm.h
@@ -441,17 +441,17 @@
cmp(value, Operand(TMP));
}
- void CompareFunctionTypeNullabilityWith(Register type,
- int8_t value) override {
- EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP);
- ldrb(TMP, FieldAddress(
- type, compiler::target::FunctionType::nullability_offset()));
- cmp(TMP, Operand(value));
+ void LoadAbstractTypeNullability(Register dst, Register type) override {
+ ldrb(dst,
+ FieldAddress(type, compiler::target::AbstractType::flags_offset()));
+ and_(dst, dst,
+ Operand(compiler::target::UntaggedAbstractType::kNullabilityMask));
}
- void CompareTypeNullabilityWith(Register type, int8_t value) override {
- EnsureHasClassIdInDEBUG(kTypeCid, type, TMP);
- ldrb(TMP, FieldAddress(type, compiler::target::Type::nullability_offset()));
- cmp(TMP, Operand(value));
+ void CompareAbstractTypeNullabilityWith(Register type,
+ /*Nullability*/ int8_t value,
+ Register scratch) override {
+ LoadAbstractTypeNullability(scratch, type);
+ cmp(scratch, Operand(value));
}
// Misc. functionality
@@ -869,6 +869,13 @@
void LslImmediate(Register rd, int32_t shift) {
LslImmediate(rd, rd, shift);
}
+ void LsrImmediate(Register rd, Register rn, int32_t shift) {
+ ASSERT((shift >= 0) && (shift < kBitsPerInt32));
+ Lsr(rd, rn, Operand(shift));
+ }
+ void LsrImmediate(Register rd, int32_t shift) override {
+ LsrImmediate(rd, rd, shift);
+ }
// Test rn and immediate. May clobber IP.
void TestImmediate(Register rn, int32_t imm, Condition cond = AL);
diff --git a/runtime/vm/compiler/assembler/assembler_arm64.h b/runtime/vm/compiler/assembler/assembler_arm64.h
index 300071f..494e066 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64.h
+++ b/runtime/vm/compiler/assembler/assembler_arm64.h
@@ -648,20 +648,17 @@
cmp(value, Operand(TMP), sz);
}
- void CompareFunctionTypeNullabilityWith(Register type,
- int8_t value) override {
- EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP);
- ldr(TMP,
- FieldAddress(type,
- compiler::target::FunctionType::nullability_offset()),
+ void LoadAbstractTypeNullability(Register dst, Register type) override {
+ ldr(dst, FieldAddress(type, compiler::target::AbstractType::flags_offset()),
kUnsignedByte);
- cmp(TMP, Operand(value));
+ AndImmediate(dst, dst,
+ compiler::target::UntaggedAbstractType::kNullabilityMask);
}
- void CompareTypeNullabilityWith(Register type, int8_t value) override {
- EnsureHasClassIdInDEBUG(kTypeCid, type, TMP);
- ldr(TMP, FieldAddress(type, compiler::target::Type::nullability_offset()),
- kUnsignedByte);
- cmp(TMP, Operand(value));
+ void CompareAbstractTypeNullabilityWith(Register type,
+ /*Nullability*/ int8_t value,
+ Register scratch) override {
+ LoadAbstractTypeNullability(scratch, type);
+ cmp(scratch, Operand(value));
}
bool use_far_branches() const {
@@ -1707,6 +1704,9 @@
ASSERT((shift >= 0) && (shift < reg_size));
ubfm(rd, rn, shift, reg_size - 1, sz);
}
+ void LsrImmediate(Register rd, int32_t shift) override {
+ LsrImmediate(rd, rd, shift);
+ }
void AsrImmediate(Register rd,
Register rn,
int shift,
diff --git a/runtime/vm/compiler/assembler/assembler_base.h b/runtime/vm/compiler/assembler/assembler_base.h
index 2d26847..dbb00a3 100644
--- a/runtime/vm/compiler/assembler/assembler_base.h
+++ b/runtime/vm/compiler/assembler/assembler_base.h
@@ -782,30 +782,24 @@
Register address,
int32_t offset = 0) = 0;
- // Retrieves nullability from a FunctionTypePtr in [type] and compares it
- // to [value].
- //
- // TODO(dartbug.com/47034): Change how nullability is stored so that it
- // can be accessed without checking the class id first.
- virtual void CompareFunctionTypeNullabilityWith(Register type,
- int8_t value) = 0;
+ // Loads nullability from an AbstractType [type] to [dst].
+ virtual void LoadAbstractTypeNullability(Register dst, Register type) = 0;
+ // Loads nullability from an AbstractType [type] and compares it
+ // to [value]. Clobbers [scratch].
+ virtual void CompareAbstractTypeNullabilityWith(Register type,
+ /*Nullability*/ int8_t value,
+ Register scratch) = 0;
- // Retrieves nullability from a TypePtr in [type] and compares it to [value].
- //
- // TODO(dartbug.com/47034): Change how nullability is stored so that it
- // can be accessed without checking the class id first.
- virtual void CompareTypeNullabilityWith(Register type, int8_t value) = 0;
+ virtual void LsrImmediate(Register dst, int32_t shift) = 0;
void LoadTypeClassId(Register dst, Register src) {
#if !defined(TARGET_ARCH_IA32)
EnsureHasClassIdInDEBUG(kTypeCid, src, TMP);
#endif
- ASSERT(!compiler::target::UntaggedType::kTypeClassIdIsSigned);
- ASSERT_EQUAL(compiler::target::UntaggedType::kTypeClassIdBitSize,
- kBitsPerInt16);
LoadFieldFromOffset(dst, src,
- compiler::target::Type::type_class_id_offset(),
- kUnsignedTwoBytes);
+ compiler::target::AbstractType::flags_offset(),
+ kUnsignedFourBytes);
+ LsrImmediate(dst, compiler::target::UntaggedType::kTypeClassIdShift);
}
virtual void EnsureHasClassIdInDEBUG(intptr_t cid,
diff --git a/runtime/vm/compiler/assembler/assembler_ia32.h b/runtime/vm/compiler/assembler/assembler_ia32.h
index d9ab00b..3ce1e5f 100644
--- a/runtime/vm/compiler/assembler/assembler_ia32.h
+++ b/runtime/vm/compiler/assembler/assembler_ia32.h
@@ -766,6 +766,9 @@
void LslImmediate(Register dst, int32_t shift) {
shll(dst, Immediate(shift));
}
+ void LsrImmediate(Register dst, int32_t shift) override {
+ shrl(dst, Immediate(shift));
+ }
void CompareImmediate(Register reg, int32_t immediate) {
cmpl(reg, Immediate(immediate));
@@ -878,15 +881,17 @@
cmpxchgl(address, reg);
}
- void CompareFunctionTypeNullabilityWith(Register type,
- int8_t value) override {
- cmpb(FieldAddress(type,
- compiler::target::FunctionType::nullability_offset()),
- Immediate(value));
+ void LoadAbstractTypeNullability(Register dst, Register type) override {
+ movzxb(dst,
+ FieldAddress(type, compiler::target::AbstractType::flags_offset()));
+ andl(dst,
+ Immediate(compiler::target::UntaggedAbstractType::kNullabilityMask));
}
- void CompareTypeNullabilityWith(Register type, int8_t value) override {
- cmpb(FieldAddress(type, compiler::target::Type::nullability_offset()),
- Immediate(value));
+ void CompareAbstractTypeNullabilityWith(Register type,
+ /*Nullability*/ int8_t value,
+ Register scratch) override {
+ LoadAbstractTypeNullability(scratch, type);
+ cmpl(scratch, Immediate(value));
}
void EnterFrame(intptr_t frame_space);
diff --git a/runtime/vm/compiler/assembler/assembler_riscv.cc b/runtime/vm/compiler/assembler/assembler_riscv.cc
index 7b4cf3f..11a8c87 100644
--- a/runtime/vm/compiler/assembler/assembler_riscv.cc
+++ b/runtime/vm/compiler/assembler/assembler_riscv.cc
@@ -2389,17 +2389,16 @@
CompareRegisters(value, TMP2);
}
-void Assembler::CompareFunctionTypeNullabilityWith(Register type,
- int8_t value) {
- EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP);
- lbu(TMP,
- FieldAddress(type, compiler::target::FunctionType::nullability_offset()));
- CompareImmediate(TMP, value);
+void Assembler::LoadAbstractTypeNullability(Register dst, Register type) {
+ lbu(dst, FieldAddress(type, compiler::target::AbstractType::flags_offset()));
+ andi(dst, dst, compiler::target::UntaggedAbstractType::kNullabilityMask);
}
-void Assembler::CompareTypeNullabilityWith(Register type, int8_t value) {
- EnsureHasClassIdInDEBUG(kTypeCid, type, TMP);
- lbu(TMP, FieldAddress(type, compiler::target::Type::nullability_offset()));
- CompareImmediate(TMP, value);
+
+void Assembler::CompareAbstractTypeNullabilityWith(Register type,
+ /*Nullability*/ int8_t value,
+ Register scratch) {
+ LoadAbstractTypeNullability(scratch, type);
+ CompareImmediate(scratch, value);
}
void Assembler::ReserveAlignedFrameSpace(intptr_t frame_space) {
diff --git a/runtime/vm/compiler/assembler/assembler_riscv.h b/runtime/vm/compiler/assembler/assembler_riscv.h
index 4e02001..e5da2e4 100644
--- a/runtime/vm/compiler/assembler/assembler_riscv.h
+++ b/runtime/vm/compiler/assembler/assembler_riscv.h
@@ -846,8 +846,10 @@
void CompareWithMemoryValue(Register value, Address address);
- void CompareFunctionTypeNullabilityWith(Register type, int8_t value) override;
- void CompareTypeNullabilityWith(Register type, int8_t value) override;
+ void LoadAbstractTypeNullability(Register dst, Register type) override;
+ void CompareAbstractTypeNullabilityWith(Register type,
+ /*Nullability*/ int8_t value,
+ Register scratch) override;
// Debugging and bringup support.
void Breakpoint() override { trap(); }
@@ -986,6 +988,9 @@
void LslImmediate(Register rd, int32_t shift) {
slli(rd, rd, shift);
}
+ void LsrImmediate(Register rd, int32_t shift) override {
+ srli(rd, rd, shift);
+ }
void TestImmediate(Register rn, intx_t imm, OperandSize sz = kWordBytes);
void CompareImmediate(Register rn, intx_t imm, OperandSize sz = kWordBytes);
diff --git a/runtime/vm/compiler/assembler/assembler_x64.h b/runtime/vm/compiler/assembler/assembler_x64.h
index 1fd2fee..0d7e0fb 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.h
+++ b/runtime/vm/compiler/assembler/assembler_x64.h
@@ -594,6 +594,9 @@
void LslImmediate(Register dst, int32_t shift) {
shlq(dst, Immediate(shift));
}
+ void LsrImmediate(Register dst, int32_t shift) override {
+ shrq(dst, Immediate(shift));
+ }
void shldq(Register dst, Register src, Register shifter) {
ASSERT(shifter == RCX);
@@ -1219,17 +1222,17 @@
OBJ(cmp)(value, FieldAddress(base, offset));
}
- void CompareFunctionTypeNullabilityWith(Register type,
- int8_t value) override {
- EnsureHasClassIdInDEBUG(kFunctionTypeCid, type, TMP);
- cmpb(FieldAddress(type,
- compiler::target::FunctionType::nullability_offset()),
- Immediate(value));
+ void LoadAbstractTypeNullability(Register dst, Register type) override {
+ movzxb(dst,
+ FieldAddress(type, compiler::target::AbstractType::flags_offset()));
+ andl(dst,
+ Immediate(compiler::target::UntaggedAbstractType::kNullabilityMask));
}
- void CompareTypeNullabilityWith(Register type, int8_t value) override {
- EnsureHasClassIdInDEBUG(kTypeCid, type, TMP);
- cmpb(FieldAddress(type, compiler::target::Type::nullability_offset()),
- Immediate(value));
+ void CompareAbstractTypeNullabilityWith(Register type,
+ /*Nullability*/ int8_t value,
+ Register scratch) override {
+ LoadAbstractTypeNullability(scratch, type);
+ cmpl(scratch, Immediate(value));
}
void RestoreCodePointer();
diff --git a/runtime/vm/compiler/backend/slot.h b/runtime/vm/compiler/backend/slot.h
index 9cf7404..61d395b 100644
--- a/runtime/vm/compiler/backend/slot.h
+++ b/runtime/vm/compiler/backend/slot.h
@@ -183,8 +183,7 @@
V(FunctionType, UntaggedFunctionType, packed_type_parameter_counts, Uint16, \
FINAL) \
V(PointerBase, UntaggedPointerBase, data, IntPtr, VAR) \
- V(Record, UntaggedRecord, num_fields, Int32, FINAL) \
- V(TypeParameter, UntaggedTypeParameter, flags, Uint8, FINAL)
+ V(Record, UntaggedRecord, num_fields, Int32, FINAL)
// For uses that do not need the exact_type (boxed) or representation (unboxed)
// or whether a boxed native slot is nullable. (Generally, such users only need
diff --git a/runtime/vm/compiler/runtime_api.cc b/runtime/vm/compiler/runtime_api.cc
index d0cf786..5e72ade 100644
--- a/runtime/vm/compiler/runtime_api.cc
+++ b/runtime/vm/compiler/runtime_api.cc
@@ -391,12 +391,15 @@
const word UntaggedAbstractType::kTypeStateFinalizedInstantiated =
dart::UntaggedAbstractType::kFinalizedInstantiated;
+const word UntaggedAbstractType::kTypeStateShift =
+ dart::UntaggedAbstractType::kTypeStateShift;
+const word UntaggedAbstractType::kTypeStateBits =
+ dart::UntaggedAbstractType::kTypeStateBits;
+const word UntaggedAbstractType::kNullabilityMask =
+ dart::UntaggedAbstractType::kNullabilityMask;
-const bool UntaggedType::kTypeClassIdIsSigned =
- std::is_signed<decltype(dart::UntaggedType::type_class_id_)>::value;
-
-const word UntaggedType::kTypeClassIdBitSize =
- sizeof(dart::UntaggedType::type_class_id_) * kBitsPerByte;
+const word UntaggedType::kTypeClassIdShift =
+ dart::UntaggedType::kTypeClassIdShift;
const word UntaggedObject::kBarrierOverlapShift =
dart::UntaggedObject::kBarrierOverlapShift;
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index 38fe9a6..86be807 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -432,12 +432,14 @@
class UntaggedAbstractType : public AllStatic {
public:
static const word kTypeStateFinalizedInstantiated;
+ static const word kTypeStateShift;
+ static const word kTypeStateBits;
+ static const word kNullabilityMask;
};
class UntaggedType : public AllStatic {
public:
- static const bool kTypeClassIdIsSigned;
- static const word kTypeClassIdBitSize;
+ static const word kTypeClassIdShift;
};
class Object : public AllStatic {
@@ -695,6 +697,7 @@
class AbstractType : public AllStatic {
public:
+ static word flags_offset();
static word type_test_stub_entry_point_offset();
static word InstanceSize();
FINAL_CLASS();
@@ -703,10 +706,7 @@
class Type : public AllStatic {
public:
static word hash_offset();
- static word type_state_offset();
static word arguments_offset();
- static word type_class_id_offset();
- static word nullability_offset();
static word InstanceSize();
FINAL_CLASS();
};
@@ -714,13 +714,11 @@
class FunctionType : public AllStatic {
public:
static word hash_offset();
- static word type_state_offset();
static word packed_parameter_counts_offset();
static word packed_type_parameter_counts_offset();
static word named_parameter_names_offset();
static word parameter_types_offset();
static word type_parameters_offset();
- static word nullability_offset();
static word InstanceSize();
FINAL_CLASS();
};
@@ -966,12 +964,10 @@
class TypeParameter : public AllStatic {
public:
static word bound_offset();
- static word flags_offset();
static word InstanceSize();
FINAL_CLASS();
static word parameterized_class_id_offset();
static word index_offset();
- static word nullability_offset();
};
class LibraryPrefix : public AllStatic {
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index 5fccbc4..8100475 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -96,6 +96,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -502,11 +503,8 @@
16;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
-static constexpr dart::compiler::target::word Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word Type_hash_offset = 16;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 20;
-static constexpr dart::compiler::target::word Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word Type_hash_offset = 20;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
24;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 20;
@@ -527,24 +525,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
20;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 24;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 39;
+ FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 32;
+ FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 36;
+ FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 20;
+ FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 12;
+ FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 20;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 23;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 25;
+ TypeParameter_parameterized_class_id_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 27;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 8;
@@ -556,9 +550,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
16;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
12;
@@ -584,7 +577,7 @@
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word Array_header_size = 12;
static constexpr dart::compiler::target::word Bool_InstanceSize = 8;
@@ -615,7 +608,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 88;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
16;
@@ -667,7 +660,7 @@
static constexpr dart::compiler::target::word Type_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20;
@@ -764,6 +757,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -1176,11 +1170,8 @@
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
-static constexpr dart::compiler::target::word Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word Type_hash_offset = 32;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 40;
-static constexpr dart::compiler::target::word Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word Type_hash_offset = 40;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
48;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 40;
@@ -1201,24 +1192,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
40;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 48;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 71;
+ FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 64;
+ FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 68;
+ FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 40;
+ FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 24;
+ FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 40;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 43;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 45;
+ TypeParameter_parameterized_class_id_offset = 48;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 51;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 16;
@@ -1230,9 +1217,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
32;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
24;
@@ -1259,7 +1245,7 @@
Thread_write_barrier_wrappers_thread_offset[] = {
1552, 1560, 1568, 1576, -1, -1, 1584, 1592,
1600, 1608, 1616, -1, 1624, 1632, -1, -1};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word Array_header_size = 24;
static constexpr dart::compiler::target::word Bool_InstanceSize = 16;
@@ -1290,7 +1276,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 128;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
32;
@@ -1341,9 +1327,9 @@
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word Type_InstanceSize = 48;
-static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48;
+static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40;
@@ -1437,6 +1423,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -1843,11 +1830,8 @@
16;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
-static constexpr dart::compiler::target::word Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word Type_hash_offset = 16;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 20;
-static constexpr dart::compiler::target::word Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word Type_hash_offset = 20;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
24;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 20;
@@ -1868,24 +1852,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
20;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 24;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 39;
+ FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 32;
+ FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 36;
+ FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 20;
+ FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 12;
+ FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 20;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 23;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 25;
+ TypeParameter_parameterized_class_id_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 27;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 8;
@@ -1897,9 +1877,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
16;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
12;
@@ -1922,7 +1901,7 @@
WeakReference_type_arguments_offset = 8;
static constexpr dart::compiler::target::word Code_entry_point_offset[] = {
4, 12, 8, 16};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word Array_header_size = 12;
static constexpr dart::compiler::target::word Bool_InstanceSize = 8;
@@ -1953,7 +1932,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 88;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
16;
@@ -2005,7 +1984,7 @@
static constexpr dart::compiler::target::word Type_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20;
@@ -2102,6 +2081,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -2514,11 +2494,8 @@
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
-static constexpr dart::compiler::target::word Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word Type_hash_offset = 32;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 40;
-static constexpr dart::compiler::target::word Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word Type_hash_offset = 40;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
48;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 40;
@@ -2539,24 +2516,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
40;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 48;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 71;
+ FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 64;
+ FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 68;
+ FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 40;
+ FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 24;
+ FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 40;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 43;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 45;
+ TypeParameter_parameterized_class_id_offset = 48;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 51;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 16;
@@ -2568,9 +2541,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
32;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
24;
@@ -2598,7 +2570,7 @@
1552, 1560, 1568, 1576, 1584, 1592, 1600, 1608, 1616, 1624, 1632,
1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1,
-1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word Array_header_size = 24;
static constexpr dart::compiler::target::word Bool_InstanceSize = 16;
@@ -2629,7 +2601,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 128;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
32;
@@ -2680,9 +2652,9 @@
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word Type_InstanceSize = 48;
-static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48;
+static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40;
@@ -2776,6 +2748,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -3190,9 +3163,6 @@
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
static constexpr dart::compiler::target::word Type_arguments_offset = 24;
static constexpr dart::compiler::target::word Type_hash_offset = 28;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 32;
-static constexpr dart::compiler::target::word Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word Type_nullability_offset = 35;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
36;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 32;
@@ -3216,8 +3186,6 @@
static constexpr dart::compiler::target::word FunctionType_hash_offset = 40;
static constexpr dart::compiler::target::word
FunctionType_named_parameter_names_offset = 36;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 51;
static constexpr dart::compiler::target::word
FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
@@ -3229,8 +3197,6 @@
static constexpr dart::compiler::target::word
TypeParameter_parameterized_class_id_offset = 32;
static constexpr dart::compiler::target::word TypeParameter_index_offset = 35;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 37;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 12;
@@ -3243,7 +3209,6 @@
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
20;
static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
@@ -3352,7 +3317,7 @@
static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word Type_InstanceSize = 32;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
@@ -3449,6 +3414,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -3863,9 +3829,6 @@
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
static constexpr dart::compiler::target::word Type_arguments_offset = 24;
static constexpr dart::compiler::target::word Type_hash_offset = 28;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 32;
-static constexpr dart::compiler::target::word Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word Type_nullability_offset = 35;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
36;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 32;
@@ -3889,8 +3852,6 @@
static constexpr dart::compiler::target::word FunctionType_hash_offset = 40;
static constexpr dart::compiler::target::word
FunctionType_named_parameter_names_offset = 36;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 51;
static constexpr dart::compiler::target::word
FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
@@ -3902,8 +3863,6 @@
static constexpr dart::compiler::target::word
TypeParameter_parameterized_class_id_offset = 32;
static constexpr dart::compiler::target::word TypeParameter_index_offset = 35;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 37;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 12;
@@ -3916,7 +3875,6 @@
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
20;
static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
@@ -4026,7 +3984,7 @@
static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word Type_InstanceSize = 32;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
@@ -4123,6 +4081,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -4529,11 +4488,8 @@
16;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
-static constexpr dart::compiler::target::word Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word Type_hash_offset = 16;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 20;
-static constexpr dart::compiler::target::word Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word Type_hash_offset = 20;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
24;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 20;
@@ -4554,24 +4510,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
20;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 24;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 39;
+ FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 32;
+ FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 36;
+ FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 20;
+ FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 12;
+ FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 20;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 23;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 25;
+ TypeParameter_parameterized_class_id_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 27;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 8;
@@ -4583,9 +4535,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
16;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
12;
@@ -4613,7 +4564,7 @@
-1, -1, -1, -1, -1, 788, 792, 796, -1, -1, 800,
804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832,
836, 840, -1, -1, -1, -1, 844, 848, 852, 856};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word Array_header_size = 12;
static constexpr dart::compiler::target::word Bool_InstanceSize = 8;
@@ -4644,7 +4595,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 88;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
16;
@@ -4696,7 +4647,7 @@
static constexpr dart::compiler::target::word Type_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20;
@@ -4793,6 +4744,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -5205,11 +5157,8 @@
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
-static constexpr dart::compiler::target::word Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word Type_hash_offset = 32;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 40;
-static constexpr dart::compiler::target::word Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word Type_hash_offset = 40;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
48;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 40;
@@ -5230,24 +5179,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
40;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 48;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 71;
+ FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 64;
+ FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 68;
+ FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 40;
+ FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 24;
+ FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 40;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 43;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 45;
+ TypeParameter_parameterized_class_id_offset = 48;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 51;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 16;
@@ -5259,9 +5204,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
32;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
24;
@@ -5289,7 +5233,7 @@
-1, -1, -1, -1, -1, 1552, 1560, 1568, -1, -1, 1576,
1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640,
1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word Array_header_size = 24;
static constexpr dart::compiler::target::word Bool_InstanceSize = 16;
@@ -5320,7 +5264,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 128;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
32;
@@ -5371,9 +5315,9 @@
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word Type_InstanceSize = 48;
-static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48;
+static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40;
@@ -5466,6 +5410,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -5867,11 +5812,8 @@
16;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
-static constexpr dart::compiler::target::word Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word Type_hash_offset = 16;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 20;
-static constexpr dart::compiler::target::word Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word Type_hash_offset = 20;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
24;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 20;
@@ -5892,24 +5834,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
20;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 24;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 39;
+ FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 32;
+ FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 36;
+ FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 20;
+ FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 12;
+ FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 20;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 23;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 25;
+ TypeParameter_parameterized_class_id_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 27;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 8;
@@ -5921,9 +5859,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
16;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
12;
@@ -5949,7 +5886,7 @@
static constexpr dart::compiler::target::word
Thread_write_barrier_wrappers_thread_offset[] = {
788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word Array_header_size = 12;
static constexpr dart::compiler::target::word Bool_InstanceSize = 8;
@@ -5980,7 +5917,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 88;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
16;
@@ -6032,7 +5969,7 @@
static constexpr dart::compiler::target::word Type_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20;
@@ -6126,6 +6063,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -6533,11 +6471,8 @@
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
-static constexpr dart::compiler::target::word Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word Type_hash_offset = 32;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 40;
-static constexpr dart::compiler::target::word Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word Type_hash_offset = 40;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
48;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 40;
@@ -6558,24 +6493,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
40;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 48;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 71;
+ FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 64;
+ FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 68;
+ FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 40;
+ FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 24;
+ FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 40;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 43;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 45;
+ TypeParameter_parameterized_class_id_offset = 48;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 51;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 16;
@@ -6587,9 +6518,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
32;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
24;
@@ -6616,7 +6546,7 @@
Thread_write_barrier_wrappers_thread_offset[] = {
1552, 1560, 1568, 1576, -1, -1, 1584, 1592,
1600, 1608, 1616, -1, 1624, 1632, -1, -1};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word Array_header_size = 24;
static constexpr dart::compiler::target::word Bool_InstanceSize = 16;
@@ -6647,7 +6577,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 128;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
32;
@@ -6698,9 +6628,9 @@
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word Type_InstanceSize = 48;
-static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48;
+static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40;
@@ -6791,6 +6721,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -7192,11 +7123,8 @@
16;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
-static constexpr dart::compiler::target::word Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word Type_hash_offset = 16;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 20;
-static constexpr dart::compiler::target::word Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word Type_hash_offset = 20;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
24;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 20;
@@ -7217,24 +7145,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
20;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 24;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 39;
+ FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 32;
+ FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 36;
+ FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 20;
+ FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 12;
+ FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 20;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 23;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 25;
+ TypeParameter_parameterized_class_id_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 27;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 8;
@@ -7246,9 +7170,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
16;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
12;
@@ -7271,7 +7194,7 @@
WeakReference_type_arguments_offset = 8;
static constexpr dart::compiler::target::word Code_entry_point_offset[] = {
4, 12, 8, 16};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word Array_header_size = 12;
static constexpr dart::compiler::target::word Bool_InstanceSize = 8;
@@ -7302,7 +7225,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 88;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
16;
@@ -7354,7 +7277,7 @@
static constexpr dart::compiler::target::word Type_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20;
@@ -7448,6 +7371,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -7855,11 +7779,8 @@
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
-static constexpr dart::compiler::target::word Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word Type_hash_offset = 32;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 40;
-static constexpr dart::compiler::target::word Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word Type_hash_offset = 40;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
48;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 40;
@@ -7880,24 +7801,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
40;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 48;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 71;
+ FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 64;
+ FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 68;
+ FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 40;
+ FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 24;
+ FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 40;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 43;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 45;
+ TypeParameter_parameterized_class_id_offset = 48;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 51;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 16;
@@ -7909,9 +7826,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
32;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
24;
@@ -7939,7 +7855,7 @@
1552, 1560, 1568, 1576, 1584, 1592, 1600, 1608, 1616, 1624, 1632,
1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1,
-1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word Array_header_size = 24;
static constexpr dart::compiler::target::word Bool_InstanceSize = 16;
@@ -7970,7 +7886,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 128;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
32;
@@ -8021,9 +7937,9 @@
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word Type_InstanceSize = 48;
-static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48;
+static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40;
@@ -8114,6 +8030,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -8523,9 +8440,6 @@
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
static constexpr dart::compiler::target::word Type_arguments_offset = 24;
static constexpr dart::compiler::target::word Type_hash_offset = 28;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 32;
-static constexpr dart::compiler::target::word Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word Type_nullability_offset = 35;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
36;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 32;
@@ -8549,8 +8463,6 @@
static constexpr dart::compiler::target::word FunctionType_hash_offset = 40;
static constexpr dart::compiler::target::word
FunctionType_named_parameter_names_offset = 36;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 51;
static constexpr dart::compiler::target::word
FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
@@ -8562,8 +8474,6 @@
static constexpr dart::compiler::target::word
TypeParameter_parameterized_class_id_offset = 32;
static constexpr dart::compiler::target::word TypeParameter_index_offset = 35;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 37;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 12;
@@ -8576,7 +8486,6 @@
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
20;
static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
@@ -8685,7 +8594,7 @@
static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word Type_InstanceSize = 32;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
@@ -8779,6 +8688,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -9188,9 +9098,6 @@
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
static constexpr dart::compiler::target::word Type_arguments_offset = 24;
static constexpr dart::compiler::target::word Type_hash_offset = 28;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 32;
-static constexpr dart::compiler::target::word Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word Type_nullability_offset = 35;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
36;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 32;
@@ -9214,8 +9121,6 @@
static constexpr dart::compiler::target::word FunctionType_hash_offset = 40;
static constexpr dart::compiler::target::word
FunctionType_named_parameter_names_offset = 36;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 51;
static constexpr dart::compiler::target::word
FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
@@ -9227,8 +9132,6 @@
static constexpr dart::compiler::target::word
TypeParameter_parameterized_class_id_offset = 32;
static constexpr dart::compiler::target::word TypeParameter_index_offset = 35;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 37;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 12;
@@ -9241,7 +9144,6 @@
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
20;
static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
@@ -9351,7 +9253,7 @@
static constexpr dart::compiler::target::word LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word Type_InstanceSize = 32;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 40;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
@@ -9445,6 +9347,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -9846,11 +9749,8 @@
16;
static constexpr dart::compiler::target::word TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 12;
-static constexpr dart::compiler::target::word Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word Type_hash_offset = 16;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 20;
-static constexpr dart::compiler::target::word Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word Type_hash_offset = 20;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
24;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 20;
@@ -9871,24 +9771,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 4;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
20;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 24;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 39;
+ FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 32;
+ FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 36;
+ FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 20;
+ FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 12;
+ FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 20;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 23;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 25;
+ TypeParameter_parameterized_class_id_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 27;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 8;
@@ -9900,9 +9796,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 12;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
16;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 20;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
12;
@@ -9930,7 +9825,7 @@
-1, -1, -1, -1, -1, 788, 792, 796, -1, -1, 800,
804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832,
836, 840, -1, -1, -1, -1, 844, 848, 852, 856};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 12;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 16;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word Array_header_size = 12;
static constexpr dart::compiler::target::word Bool_InstanceSize = 8;
@@ -9961,7 +9856,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 88;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 40;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 44;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
16;
@@ -10013,7 +9908,7 @@
static constexpr dart::compiler::target::word Type_InstanceSize = 24;
static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 28;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 20;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 12;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 20;
@@ -10107,6 +10002,7 @@
static constexpr dart::compiler::target::word SubtypeTestCache_kTestResult = 0;
static constexpr dart::compiler::target::word TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AbstractType_flags_offset = 16;
static constexpr dart::compiler::target::word
AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word ArgumentsDescriptor_count_offset =
@@ -10514,11 +10410,8 @@
static constexpr dart::compiler::target::word TimelineStream_enabled_offset =
16;
static constexpr dart::compiler::target::word TwoByteString_data_offset = 16;
-static constexpr dart::compiler::target::word Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word Type_hash_offset = 32;
-static constexpr dart::compiler::target::word Type_type_class_id_offset = 40;
-static constexpr dart::compiler::target::word Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word Type_hash_offset = 40;
static constexpr dart::compiler::target::word Finalizer_type_arguments_offset =
48;
static constexpr dart::compiler::target::word Finalizer_callback_offset = 40;
@@ -10539,24 +10432,20 @@
static constexpr dart::compiler::target::word FinalizerEntry_value_offset = 8;
static constexpr dart::compiler::target::word NativeFinalizer_callback_offset =
40;
-static constexpr dart::compiler::target::word FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- FunctionType_named_parameter_names_offset = 48;
-static constexpr dart::compiler::target::word FunctionType_nullability_offset =
- 71;
+ FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- FunctionType_packed_parameter_counts_offset = 64;
+ FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- FunctionType_packed_type_parameter_counts_offset = 68;
+ FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- FunctionType_parameter_types_offset = 40;
+ FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- FunctionType_type_parameters_offset = 24;
+ FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- TypeParameter_parameterized_class_id_offset = 40;
-static constexpr dart::compiler::target::word TypeParameter_index_offset = 43;
-static constexpr dart::compiler::target::word TypeParameter_nullability_offset =
- 45;
+ TypeParameter_parameterized_class_id_offset = 48;
+static constexpr dart::compiler::target::word TypeParameter_index_offset = 51;
static constexpr dart::compiler::target::word
TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word TypeArguments_length_offset = 16;
@@ -10568,9 +10457,8 @@
static constexpr dart::compiler::target::word TypeParameters_bounds_offset = 24;
static constexpr dart::compiler::target::word TypeParameters_defaults_offset =
32;
-static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
-static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
-static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
+static constexpr dart::compiler::target::word TypeParameter_bound_offset = 40;
+static constexpr dart::compiler::target::word TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
24;
@@ -10598,7 +10486,7 @@
-1, -1, -1, -1, -1, 1552, 1560, 1568, -1, -1, 1576,
1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640,
1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688};
-static constexpr dart::compiler::target::word AbstractType_InstanceSize = 24;
+static constexpr dart::compiler::target::word AbstractType_InstanceSize = 32;
static constexpr dart::compiler::target::word ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word Array_header_size = 24;
static constexpr dart::compiler::target::word Bool_InstanceSize = 16;
@@ -10629,7 +10517,7 @@
static constexpr dart::compiler::target::word Float32x4_InstanceSize = 24;
static constexpr dart::compiler::target::word Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word Function_InstanceSize = 128;
-static constexpr dart::compiler::target::word FunctionType_InstanceSize = 72;
+static constexpr dart::compiler::target::word FunctionType_InstanceSize = 80;
static constexpr dart::compiler::target::word FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word GrowableObjectArray_InstanceSize =
32;
@@ -10680,9 +10568,9 @@
static constexpr dart::compiler::target::word
TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word Type_InstanceSize = 48;
-static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 48;
+static constexpr dart::compiler::target::word TypeParameter_InstanceSize = 56;
static constexpr dart::compiler::target::word TypeParameters_InstanceSize = 40;
-static constexpr dart::compiler::target::word TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word TypedDataBase_InstanceSize = 24;
static constexpr dart::compiler::target::word TypedDataView_InstanceSize = 40;
@@ -10785,6 +10673,7 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word
@@ -11229,12 +11118,8 @@
AOT_TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
12;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 20;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -11261,25 +11146,21 @@
4;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 20;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 24;
+ AOT_FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 39;
+ AOT_FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 32;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 36;
+ AOT_FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 20;
+ AOT_FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 12;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 20;
+ AOT_TypeParameter_parameterized_class_id_offset = 24;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 23;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 25;
+ 27;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -11297,10 +11178,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 16;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 16;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 24;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
+ 20;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
8;
static constexpr dart::compiler::target::word
@@ -11329,7 +11208,7 @@
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 12;
+ 16;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Array_header_size = 12;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8;
@@ -11364,7 +11243,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 40;
+ 44;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 16;
@@ -11424,7 +11303,7 @@
28;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
20;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
12;
@@ -11529,6 +11408,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -11975,12 +11856,8 @@
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
16;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 40;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 48;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -12007,25 +11884,21 @@
8;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 40;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 48;
+ AOT_FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 71;
+ AOT_FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 64;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 68;
+ AOT_FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 40;
+ AOT_FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 24;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 40;
+ AOT_TypeParameter_parameterized_class_id_offset = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 43;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 45;
+ 51;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -12043,10 +11916,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 44;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
+ 40;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
16;
static constexpr dart::compiler::target::word
@@ -12077,7 +11948,7 @@
1552, 1560, 1568, 1576, -1, -1, 1584, 1592,
1600, 1608, 1616, -1, 1624, 1632, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 24;
+ 32;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16;
@@ -12112,7 +11983,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 72;
+ 80;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 32;
@@ -12169,10 +12040,10 @@
AOT_TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
- 48;
+ 56;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
24;
@@ -12280,6 +12151,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -12726,12 +12599,8 @@
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
16;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 40;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 48;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -12758,25 +12627,21 @@
8;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 40;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 48;
+ AOT_FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 71;
+ AOT_FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 64;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 68;
+ AOT_FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 40;
+ AOT_FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 24;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 40;
+ AOT_TypeParameter_parameterized_class_id_offset = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 43;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 45;
+ 51;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -12794,10 +12659,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 44;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
+ 40;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
16;
static constexpr dart::compiler::target::word
@@ -12829,7 +12692,7 @@
1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1,
-1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 24;
+ 32;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16;
@@ -12864,7 +12727,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 72;
+ 80;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 32;
@@ -12921,10 +12784,10 @@
AOT_TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
- 48;
+ 56;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
24;
@@ -13028,6 +12891,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -13476,10 +13341,6 @@
16;
static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 36;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -13510,8 +13371,6 @@
static constexpr dart::compiler::target::word
AOT_FunctionType_named_parameter_names_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 51;
-static constexpr dart::compiler::target::word
AOT_FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
AOT_FunctionType_packed_type_parameter_counts_offset = 48;
@@ -13524,8 +13383,6 @@
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
35;
static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 37;
-static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
12;
@@ -13543,8 +13400,6 @@
AOT_TypeParameters_defaults_offset = 20;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
28;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 36;
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
20;
@@ -13666,7 +13521,7 @@
static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
AOT_TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
@@ -13775,6 +13630,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -14223,10 +14080,6 @@
16;
static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 36;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -14257,8 +14110,6 @@
static constexpr dart::compiler::target::word
AOT_FunctionType_named_parameter_names_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 51;
-static constexpr dart::compiler::target::word
AOT_FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
AOT_FunctionType_packed_type_parameter_counts_offset = 48;
@@ -14271,8 +14122,6 @@
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
35;
static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 37;
-static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
12;
@@ -14290,8 +14139,6 @@
AOT_TypeParameters_defaults_offset = 20;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
28;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 36;
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
20;
@@ -14414,7 +14261,7 @@
static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
AOT_TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
@@ -14523,6 +14370,7 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word
@@ -14967,12 +14815,8 @@
AOT_TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
12;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 20;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -14999,25 +14843,21 @@
4;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 20;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 24;
+ AOT_FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 39;
+ AOT_FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 32;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 36;
+ AOT_FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 20;
+ AOT_FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 12;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 20;
+ AOT_TypeParameter_parameterized_class_id_offset = 24;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 23;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 25;
+ 27;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -15035,10 +14875,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 16;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 16;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 24;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
+ 20;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
8;
static constexpr dart::compiler::target::word
@@ -15069,7 +14907,7 @@
804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832,
836, 840, -1, -1, -1, -1, 844, 848, 852, 856};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 12;
+ 16;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Array_header_size = 12;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8;
@@ -15104,7 +14942,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 44;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 40;
+ 44;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 16;
@@ -15164,7 +15002,7 @@
28;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
20;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
12;
@@ -15269,6 +15107,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -15715,12 +15555,8 @@
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
16;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 40;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 48;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -15747,25 +15583,21 @@
8;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 40;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 48;
+ AOT_FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 71;
+ AOT_FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 64;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 68;
+ AOT_FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 40;
+ AOT_FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 24;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 40;
+ AOT_TypeParameter_parameterized_class_id_offset = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 43;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 45;
+ 51;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -15783,10 +15615,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 44;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
+ 40;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
16;
static constexpr dart::compiler::target::word
@@ -15818,7 +15648,7 @@
1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640,
1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 24;
+ 32;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16;
@@ -15853,7 +15683,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 72;
+ 80;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 32;
@@ -15910,10 +15740,10 @@
AOT_TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
- 48;
+ 56;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
24;
@@ -16016,6 +15846,7 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word
@@ -16454,12 +16285,8 @@
AOT_TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
12;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 20;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -16486,25 +16313,21 @@
4;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 20;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 24;
+ AOT_FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 39;
+ AOT_FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 32;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 36;
+ AOT_FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 20;
+ AOT_FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 12;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 20;
+ AOT_TypeParameter_parameterized_class_id_offset = 24;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 23;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 25;
+ 27;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -16522,10 +16345,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 16;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 16;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 24;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
+ 20;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
8;
static constexpr dart::compiler::target::word
@@ -16554,7 +16375,7 @@
AOT_Thread_write_barrier_wrappers_thread_offset[] = {
788, 792, 796, 800, 804, -1, 808, -1, 812, 816, -1, -1, -1, -1, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 12;
+ 16;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Array_header_size = 12;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8;
@@ -16589,7 +16410,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 40;
+ 44;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 16;
@@ -16649,7 +16470,7 @@
28;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
20;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
12;
@@ -16751,6 +16572,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -17191,12 +17014,8 @@
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
16;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 40;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 48;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -17223,25 +17042,21 @@
8;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 40;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 48;
+ AOT_FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 71;
+ AOT_FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 64;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 68;
+ AOT_FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 40;
+ AOT_FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 24;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 40;
+ AOT_TypeParameter_parameterized_class_id_offset = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 43;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 45;
+ 51;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -17259,10 +17074,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 44;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
+ 40;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
16;
static constexpr dart::compiler::target::word
@@ -17293,7 +17106,7 @@
1552, 1560, 1568, 1576, -1, -1, 1584, 1592,
1600, 1608, 1616, -1, 1624, 1632, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 24;
+ 32;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16;
@@ -17328,7 +17141,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 72;
+ 80;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 32;
@@ -17385,10 +17198,10 @@
AOT_TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
- 48;
+ 56;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
24;
@@ -17493,6 +17306,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -17933,12 +17748,8 @@
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
16;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 40;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 48;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -17965,25 +17776,21 @@
8;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 40;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 48;
+ AOT_FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 71;
+ AOT_FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 64;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 68;
+ AOT_FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 40;
+ AOT_FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 24;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 40;
+ AOT_TypeParameter_parameterized_class_id_offset = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 43;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 45;
+ 51;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -18001,10 +17808,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 44;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
+ 40;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
16;
static constexpr dart::compiler::target::word
@@ -18036,7 +17841,7 @@
1640, 1648, 1656, 1664, -1, -1, -1, -1, 1672, 1680, -1,
-1, 1688, 1696, 1704, -1, -1, -1, -1, -1, -1};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 24;
+ 32;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16;
@@ -18071,7 +17876,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 72;
+ 80;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 32;
@@ -18128,10 +17933,10 @@
AOT_TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
- 48;
+ 56;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
24;
@@ -18232,6 +18037,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -18674,10 +18481,6 @@
16;
static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 36;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -18708,8 +18511,6 @@
static constexpr dart::compiler::target::word
AOT_FunctionType_named_parameter_names_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 51;
-static constexpr dart::compiler::target::word
AOT_FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
AOT_FunctionType_packed_type_parameter_counts_offset = 48;
@@ -18722,8 +18523,6 @@
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
35;
static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 37;
-static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
12;
@@ -18741,8 +18540,6 @@
AOT_TypeParameters_defaults_offset = 20;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
28;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 36;
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
20;
@@ -18864,7 +18661,7 @@
static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
AOT_TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
@@ -18970,6 +18767,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -19412,10 +19211,6 @@
16;
static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Type_hash_offset = 28;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 34;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 35;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 36;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -19446,8 +19241,6 @@
static constexpr dart::compiler::target::word
AOT_FunctionType_named_parameter_names_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 51;
-static constexpr dart::compiler::target::word
AOT_FunctionType_packed_parameter_counts_offset = 44;
static constexpr dart::compiler::target::word
AOT_FunctionType_packed_type_parameter_counts_offset = 48;
@@ -19460,8 +19253,6 @@
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
35;
static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 37;
-static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
12;
@@ -19479,8 +19270,6 @@
AOT_TypeParameters_defaults_offset = 20;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
28;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 36;
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
20;
@@ -19603,7 +19392,7 @@
static constexpr dart::compiler::target::word AOT_LoadingUnit_InstanceSize = 24;
static constexpr dart::compiler::target::word
AOT_TransferableTypedData_InstanceSize = 8;
-static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 40;
+static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
40;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
@@ -19709,6 +19498,7 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
268435455;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset = 8;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 4;
static constexpr dart::compiler::target::word
@@ -20147,12 +19937,8 @@
AOT_TimelineStream_enabled_offset = 8;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
12;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 12;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 16;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 20;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 22;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 23;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 16;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 20;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 24;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -20179,25 +19965,21 @@
4;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 20;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 28;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 24;
+ AOT_FunctionType_named_parameter_names_offset = 28;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 39;
+ AOT_FunctionType_packed_parameter_counts_offset = 36;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 32;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 40;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 36;
+ AOT_FunctionType_parameter_types_offset = 24;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 20;
+ AOT_FunctionType_type_parameters_offset = 16;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 12;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 20;
+ AOT_TypeParameter_parameterized_class_id_offset = 24;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 23;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 25;
+ 27;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 4;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -20215,10 +19997,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 16;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 16;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 24;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
+ 20;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 16;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
8;
static constexpr dart::compiler::target::word
@@ -20249,7 +20029,7 @@
804, 808, -1, -1, -1, 812, 816, 820, 824, 828, 832,
836, 840, -1, -1, -1, -1, 844, 848, 852, 856};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 12;
+ 16;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Array_header_size = 12;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 8;
@@ -20284,7 +20064,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 40;
+ 44;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 8;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 16;
@@ -20344,7 +20124,7 @@
28;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
20;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 16;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 20;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 12;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
12;
@@ -20446,6 +20226,8 @@
0;
static constexpr dart::compiler::target::word AOT_TypeArguments_kMaxElements =
576460752303423487;
+static constexpr dart::compiler::target::word AOT_AbstractType_flags_offset =
+ 16;
static constexpr dart::compiler::target::word
AOT_AbstractType_type_test_stub_entry_point_offset = 8;
static constexpr dart::compiler::target::word
@@ -20886,12 +20668,8 @@
AOT_TimelineStream_enabled_offset = 16;
static constexpr dart::compiler::target::word AOT_TwoByteString_data_offset =
16;
-static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 24;
-static constexpr dart::compiler::target::word AOT_Type_hash_offset = 32;
-static constexpr dart::compiler::target::word AOT_Type_type_class_id_offset =
- 40;
-static constexpr dart::compiler::target::word AOT_Type_type_state_offset = 42;
-static constexpr dart::compiler::target::word AOT_Type_nullability_offset = 43;
+static constexpr dart::compiler::target::word AOT_Type_arguments_offset = 32;
+static constexpr dart::compiler::target::word AOT_Type_hash_offset = 40;
static constexpr dart::compiler::target::word
AOT_Finalizer_type_arguments_offset = 48;
static constexpr dart::compiler::target::word AOT_Finalizer_callback_offset =
@@ -20918,25 +20696,21 @@
8;
static constexpr dart::compiler::target::word
AOT_NativeFinalizer_callback_offset = 40;
-static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 56;
+static constexpr dart::compiler::target::word AOT_FunctionType_hash_offset = 64;
static constexpr dart::compiler::target::word
- AOT_FunctionType_named_parameter_names_offset = 48;
+ AOT_FunctionType_named_parameter_names_offset = 56;
static constexpr dart::compiler::target::word
- AOT_FunctionType_nullability_offset = 71;
+ AOT_FunctionType_packed_parameter_counts_offset = 72;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_parameter_counts_offset = 64;
+ AOT_FunctionType_packed_type_parameter_counts_offset = 76;
static constexpr dart::compiler::target::word
- AOT_FunctionType_packed_type_parameter_counts_offset = 68;
+ AOT_FunctionType_parameter_types_offset = 48;
static constexpr dart::compiler::target::word
- AOT_FunctionType_parameter_types_offset = 40;
+ AOT_FunctionType_type_parameters_offset = 32;
static constexpr dart::compiler::target::word
- AOT_FunctionType_type_parameters_offset = 24;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_parameterized_class_id_offset = 40;
+ AOT_TypeParameter_parameterized_class_id_offset = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_index_offset =
- 43;
-static constexpr dart::compiler::target::word
- AOT_TypeParameter_nullability_offset = 45;
+ 51;
static constexpr dart::compiler::target::word
AOT_TypeArguments_instantiations_offset = 8;
static constexpr dart::compiler::target::word AOT_TypeArguments_length_offset =
@@ -20954,10 +20728,8 @@
static constexpr dart::compiler::target::word
AOT_TypeParameters_defaults_offset = 32;
static constexpr dart::compiler::target::word AOT_TypeParameter_bound_offset =
- 32;
-static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
- 44;
-static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
+ 40;
+static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 32;
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
16;
static constexpr dart::compiler::target::word
@@ -20989,7 +20761,7 @@
1584, 1592, -1, -1, -1, 1600, 1608, 1616, 1624, 1632, 1640,
1648, 1656, -1, -1, -1, -1, 1664, 1672, 1680, 1688};
static constexpr dart::compiler::target::word AOT_AbstractType_InstanceSize =
- 24;
+ 32;
static constexpr dart::compiler::target::word AOT_ApiError_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_Array_header_size = 24;
static constexpr dart::compiler::target::word AOT_Bool_InstanceSize = 16;
@@ -21024,7 +20796,7 @@
static constexpr dart::compiler::target::word AOT_Float64x2_InstanceSize = 24;
static constexpr dart::compiler::target::word AOT_Function_InstanceSize = 80;
static constexpr dart::compiler::target::word AOT_FunctionType_InstanceSize =
- 72;
+ 80;
static constexpr dart::compiler::target::word AOT_FutureOr_InstanceSize = 16;
static constexpr dart::compiler::target::word
AOT_GrowableObjectArray_InstanceSize = 32;
@@ -21081,10 +20853,10 @@
AOT_TransferableTypedData_InstanceSize = 8;
static constexpr dart::compiler::target::word AOT_Type_InstanceSize = 48;
static constexpr dart::compiler::target::word AOT_TypeParameter_InstanceSize =
- 48;
+ 56;
static constexpr dart::compiler::target::word AOT_TypeParameters_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 32;
+static constexpr dart::compiler::target::word AOT_TypeRef_InstanceSize = 40;
static constexpr dart::compiler::target::word AOT_TypedData_HeaderSize = 24;
static constexpr dart::compiler::target::word AOT_TypedDataBase_InstanceSize =
24;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index a584051..4ed9792 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -88,6 +88,7 @@
CONSTANT(SubtypeTestCache, kTestEntryLength) \
CONSTANT(SubtypeTestCache, kTestResult) \
CONSTANT(TypeArguments, kMaxElements) \
+ FIELD(AbstractType, flags_offset) \
FIELD(AbstractType, type_test_stub_entry_point_offset) \
FIELD(ArgumentsDescriptor, count_offset) \
FIELD(ArgumentsDescriptor, size_offset) \
@@ -336,9 +337,6 @@
FIELD(TwoByteString, data_offset) \
FIELD(Type, arguments_offset) \
FIELD(Type, hash_offset) \
- FIELD(Type, type_class_id_offset) \
- FIELD(Type, type_state_offset) \
- FIELD(Type, nullability_offset) \
FIELD(Finalizer, type_arguments_offset) \
FIELD(Finalizer, callback_offset) \
FIELD(FinalizerBase, all_entries_offset) \
@@ -354,14 +352,12 @@
FIELD(NativeFinalizer, callback_offset) \
FIELD(FunctionType, hash_offset) \
FIELD(FunctionType, named_parameter_names_offset) \
- FIELD(FunctionType, nullability_offset) \
FIELD(FunctionType, packed_parameter_counts_offset) \
FIELD(FunctionType, packed_type_parameter_counts_offset) \
FIELD(FunctionType, parameter_types_offset) \
FIELD(FunctionType, type_parameters_offset) \
FIELD(TypeParameter, parameterized_class_id_offset) \
FIELD(TypeParameter, index_offset) \
- FIELD(TypeParameter, nullability_offset) \
FIELD(TypeArguments, instantiations_offset) \
FIELD(TypeArguments, length_offset) \
FIELD(TypeArguments, nullability_offset) \
@@ -371,7 +367,6 @@
FIELD(TypeParameters, bounds_offset) \
FIELD(TypeParameters, defaults_offset) \
FIELD(TypeParameter, bound_offset) \
- FIELD(TypeParameter, flags_offset) \
FIELD(TypeRef, type_offset) \
FIELD(TypedDataBase, length_offset) \
FIELD(TypedDataView, typed_data_offset) \
diff --git a/runtime/vm/compiler/stub_code_compiler.cc b/runtime/vm/compiler/stub_code_compiler.cc
index ed09681..992bd37 100644
--- a/runtime/vm/compiler/stub_code_compiler.cc
+++ b/runtime/vm/compiler/stub_code_compiler.cc
@@ -312,50 +312,27 @@
__ LoadClassId(InstantiateTypeABI::kScratchReg,
InstantiateTypeABI::kResultTypeReg);
- // The loaded value from the TAV can be [Type], [FunctionType] or [TypeRef].
+ // Handle/unwrap TypeRefs in runtime.
+ __ CompareImmediate(InstantiateTypeABI::kScratchReg, kTypeRefCid);
+ __ BranchIf(EQUAL, &runtime_call);
- // Handle [Type]s.
- __ CompareImmediate(InstantiateTypeABI::kScratchReg, kTypeCid);
- __ BranchIf(NOT_EQUAL, &type_parameter_value_is_not_type);
switch (nullability) {
case Nullability::kNonNullable:
__ Ret();
break;
case Nullability::kNullable:
- __ CompareTypeNullabilityWith(
+ __ CompareAbstractTypeNullabilityWith(
InstantiateTypeABI::kResultTypeReg,
- static_cast<int8_t>(Nullability::kNullable));
+ static_cast<int8_t>(Nullability::kNullable),
+ InstantiateTypeABI::kScratchReg);
__ BranchIf(NOT_EQUAL, &runtime_call);
__ Ret();
break;
case Nullability::kLegacy:
- __ CompareTypeNullabilityWith(
+ __ CompareAbstractTypeNullabilityWith(
InstantiateTypeABI::kResultTypeReg,
- static_cast<int8_t>(Nullability::kNonNullable));
- __ BranchIf(EQUAL, &runtime_call);
- __ Ret();
- }
-
- // TODO(dartbug.com/49719)
- // Handle [FunctionType]s.
- __ Bind(&type_parameter_value_is_not_type);
- __ CompareImmediate(InstantiateTypeABI::kScratchReg, kFunctionTypeCid);
- __ BranchIf(NOT_EQUAL, &runtime_call);
- switch (nullability) {
- case Nullability::kNonNullable:
- __ Ret();
- break;
- case Nullability::kNullable:
- __ CompareFunctionTypeNullabilityWith(
- InstantiateTypeABI::kResultTypeReg,
- static_cast<int8_t>(Nullability::kNullable));
- __ BranchIf(NOT_EQUAL, &runtime_call);
- __ Ret();
- break;
- case Nullability::kLegacy:
- __ CompareFunctionTypeNullabilityWith(
- InstantiateTypeABI::kResultTypeReg,
- static_cast<int8_t>(Nullability::kNonNullable));
+ static_cast<int8_t>(Nullability::kNonNullable),
+ InstantiateTypeABI::kScratchReg);
__ BranchIf(EQUAL, &runtime_call);
__ Ret();
}
@@ -520,8 +497,9 @@
__ BranchIf(NOT_EQUAL, &done, compiler::Assembler::kNearJump);
if (null_safety) {
// Instance type isn't a top type if non-nullable in null safe mode.
- __ CompareTypeNullabilityWith(
- scratch1_reg, static_cast<int8_t>(Nullability::kNonNullable));
+ __ CompareAbstractTypeNullabilityWith(
+ scratch1_reg, static_cast<int8_t>(Nullability::kNonNullable),
+ scratch2_reg);
__ BranchIf(EQUAL, &done, compiler::Assembler::kNearJump);
}
__ Bind(&is_top_type);
@@ -619,8 +597,9 @@
compiler::Label is_not_type;
__ CompareClassId(kCurrentTypeReg, kTypeCid, kScratchReg);
__ BranchIf(NOT_EQUAL, &is_not_type, compiler::Assembler::kNearJump);
- __ CompareTypeNullabilityWith(
- kCurrentTypeReg, static_cast<int8_t>(Nullability::kNonNullable));
+ __ CompareAbstractTypeNullabilityWith(
+ kCurrentTypeReg, static_cast<int8_t>(Nullability::kNonNullable),
+ kScratchReg);
__ BranchIf(NOT_EQUAL, &is_assignable);
// FutureOr is a special case because it may have the non-nullable bit set,
// but FutureOr<T> functions as the union of T and Future<T>, so it must be
@@ -644,11 +623,9 @@
__ Bind(&is_not_type);
// Null is assignable to a type parameter only if it is nullable or if the
// instantiation is nullable.
- __ LoadFieldFromOffset(
- kScratchReg, kCurrentTypeReg,
- compiler::target::TypeParameter::nullability_offset(), kByte);
- __ CompareImmediate(kScratchReg,
- static_cast<int8_t>(Nullability::kNonNullable));
+ __ CompareAbstractTypeNullabilityWith(
+ kCurrentTypeReg, static_cast<int8_t>(Nullability::kNonNullable),
+ kScratchReg);
__ BranchIf(NOT_EQUAL, &is_assignable);
// Don't set kScratchReg in here as on IA32, that's the function TAV reg.
@@ -878,10 +855,15 @@
// Check whether this [Type] is instantiated/uninstantiated.
__ LoadFieldFromOffset(TypeTestABI::kScratchReg, TypeTestABI::kDstTypeReg,
- target::Type::type_state_offset(), kByte);
+ target::AbstractType::flags_offset(), kByte);
+ __ AndImmediate(
+ TypeTestABI::kScratchReg,
+ Utils::NBitMask<int32_t>(target::UntaggedAbstractType::kTypeStateBits)
+ << target::UntaggedAbstractType::kTypeStateShift);
__ CompareImmediate(
TypeTestABI::kScratchReg,
- target::UntaggedAbstractType::kTypeStateFinalizedInstantiated);
+ target::UntaggedAbstractType::kTypeStateFinalizedInstantiated
+ << target::UntaggedAbstractType::kTypeStateShift);
__ BranchIf(NOT_EQUAL, &is_complex_case, Assembler::kNearJump);
// This [Type] could be a FutureOr. Subtype2TestCache does not support Smi.
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 5b0c61a..2123257 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -10554,20 +10554,15 @@
result.set_packed_type_parameter_counts(0);
result.set_named_parameter_names(Object::empty_array());
result.SetNumParentTypeArguments(num_parent_type_arguments);
- result.set_nullability(nullability);
result.SetHash(0);
- result.StoreNonPointer(&result.untag()->type_state_,
- UntaggedType::kAllocated);
+ result.set_flags(0);
+ result.set_nullability(nullability);
+ result.set_type_state(UntaggedAbstractType::kAllocated);
result.InitializeTypeTestingStubNonAtomic(
Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result)));
return result.ptr();
}
-void FunctionType::set_type_state(uint8_t state) const {
- ASSERT(state <= UntaggedFunctionType::kFinalizedUninstantiated);
- StoreNonPointer(&untag()->type_state_, state);
-}
-
const char* FunctionType::ToUserVisibleCString() const {
Zone* zone = Thread::Current()->zone();
ZoneTextBuffer printer(zone);
@@ -20133,12 +20128,6 @@
UNREACHABLE();
}
-Nullability AbstractType::nullability() const {
- // AbstractType is an abstract class.
- UNREACHABLE();
- return Nullability::kNullable;
-}
-
bool AbstractType::IsStrictlyNonNullable() const {
// Null can be assigned to legacy and nullable types.
if (!IsNonNullable()) {
@@ -20259,26 +20248,32 @@
return false;
}
-bool AbstractType::IsFinalized() const {
- // AbstractType is an abstract class.
- UNREACHABLE();
- return false;
-}
-
void AbstractType::SetIsFinalized() const {
- // AbstractType is an abstract class.
- UNREACHABLE();
-}
-
-bool AbstractType::IsBeingFinalized() const {
- // AbstractType is an abstract class.
- UNREACHABLE();
- return false;
+ ASSERT(!IsFinalized());
+ set_type_state(IsInstantiated()
+ ? UntaggedAbstractType::kFinalizedInstantiated
+ : UntaggedAbstractType::kFinalizedUninstantiated);
}
void AbstractType::SetIsBeingFinalized() const {
- // AbstractType is an abstract class.
- UNREACHABLE();
+ ASSERT(!IsFinalized() && !IsBeingFinalized());
+ set_type_state(UntaggedAbstractType::kBeingFinalized);
+}
+
+void AbstractType::set_flags(uint32_t value) const {
+ StoreNonPointer(&untag()->flags_, value);
+}
+
+void AbstractType::set_type_state(UntaggedAbstractType::TypeState value) const {
+ ASSERT(!IsCanonical());
+ set_flags(
+ UntaggedAbstractType::TypeStateBits::update(value, untag()->flags_));
+}
+
+void AbstractType::set_nullability(Nullability value) const {
+ ASSERT(!IsCanonical());
+ set_flags(UntaggedAbstractType::NullabilityBits::update(
+ static_cast<uint8_t>(value), untag()->flags_));
}
bool AbstractType::IsEquivalent(const Instance& other,
@@ -21066,34 +21061,6 @@
return type.ptr();
}
-void Type::SetIsFinalized() const {
- ASSERT(!IsFinalized());
- if (IsInstantiated()) {
- set_type_state(UntaggedType::kFinalizedInstantiated);
- } else {
- set_type_state(UntaggedType::kFinalizedUninstantiated);
- }
-}
-
-void FunctionType::SetIsFinalized() const {
- ASSERT(!IsFinalized());
- if (IsInstantiated()) {
- set_type_state(UntaggedFunctionType::kFinalizedInstantiated);
- } else {
- set_type_state(UntaggedFunctionType::kFinalizedUninstantiated);
- }
-}
-
-void Type::SetIsBeingFinalized() const {
- ASSERT(!IsFinalized() && !IsBeingFinalized());
- set_type_state(UntaggedType::kBeingFinalized);
-}
-
-void FunctionType::SetIsBeingFinalized() const {
- ASSERT(!IsFinalized() && !IsBeingFinalized());
- set_type_state(UntaggedFunctionType::kBeingFinalized);
-}
-
TypePtr Type::ToNullability(Nullability value, Heap::Space space) const {
if (nullability() == value) {
return ptr();
@@ -21151,7 +21118,7 @@
}
classid_t Type::type_class_id() const {
- return untag()->type_class_id_;
+ return untag()->type_class_id();
}
ClassPtr Type::type_class() const {
@@ -21161,11 +21128,11 @@
bool Type::IsInstantiated(Genericity genericity,
intptr_t num_free_fun_type_params,
TrailPtr trail) const {
- if (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) {
+ if (type_state() == UntaggedType::kFinalizedInstantiated) {
return true;
}
if ((genericity == kAny) && (num_free_fun_type_params == kAllFree) &&
- (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated)) {
+ (type_state() == UntaggedType::kFinalizedUninstantiated)) {
return false;
}
if (arguments() == TypeArguments::null()) {
@@ -21723,12 +21690,12 @@
Heap::Space space) {
Zone* Z = Thread::Current()->zone();
const Type& result = Type::Handle(Z, Type::New(space));
- result.set_type_class(clazz);
result.set_arguments(arguments);
result.SetHash(0);
- result.StoreNonPointer(&result.untag()->type_state_,
- UntaggedType::kAllocated);
+ result.set_flags(0);
result.set_nullability(nullability);
+ result.set_type_state(UntaggedAbstractType::kAllocated);
+ result.set_type_class(clazz);
result.InitializeTypeTestingStubNonAtomic(
Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result)));
@@ -21736,19 +21703,13 @@
}
void Type::set_type_class_id(intptr_t id) const {
- COMPILE_ASSERT(
- std::is_unsigned<decltype(UntaggedType::type_class_id_)>::value);
- ASSERT(Utils::IsUint(sizeof(untag()->type_class_id_) * kBitsPerByte, id));
+ COMPILE_ASSERT(std::is_unsigned<ClassIdTagType>::value);
+ ASSERT(Utils::IsUint(sizeof(ClassIdTagType) * kBitsPerByte, id));
// We should never need a Type object for a top-level class.
ASSERT(!ClassTable::IsTopLevelCid(id));
ASSERT(id != kIllegalCid);
ASSERT(!IsInternalOnlyClassId(id));
- StoreNonPointer(&untag()->type_class_id_, id);
-}
-
-void Type::set_type_state(uint8_t state) const {
- ASSERT(state <= UntaggedType::kFinalizedUninstantiated);
- StoreNonPointer(&untag()->type_state_, state);
+ untag()->set_type_class_id(id);
}
const char* Type::ToCString() const {
@@ -22064,6 +22025,12 @@
void TypeRef::set_type(const AbstractType& value) const {
ASSERT(!value.IsTypeRef());
+ if (value.IsNull()) {
+ ASSERT(!IsFinalized());
+ } else {
+ set_type_state(value.type_state());
+ set_nullability(value.nullability());
+ }
untag()->set_type(value.ptr());
}
@@ -22165,23 +22132,6 @@
return printer.buffer();
}
-void TypeParameter::SetIsFinalized() const {
- ASSERT(!IsFinalized());
- set_flags(UntaggedTypeParameter::FinalizedBit::update(
- true, UntaggedTypeParameter::BeingFinalizedBit::update(false,
- untag()->flags_)));
-}
-
-void TypeParameter::SetIsBeingFinalized() const {
- ASSERT(!IsFinalized());
- set_flags(
- UntaggedTypeParameter::BeingFinalizedBit::update(true, untag()->flags_));
-}
-
-void TypeParameter::set_nullability(Nullability value) const {
- StoreNonPointer(&untag()->nullability_, static_cast<uint8_t>(value));
-}
-
TypeParameterPtr TypeParameter::ToNullability(Nullability value,
Heap::Space space) const {
if (nullability() == value) {
@@ -22539,19 +22489,16 @@
result.set_base(base);
result.set_index(index);
result.set_bound(bound);
+ result.SetHash(0);
result.set_flags(0);
result.set_nullability(nullability);
- result.SetHash(0);
+ result.set_type_state(UntaggedAbstractType::kAllocated);
result.InitializeTypeTestingStubNonAtomic(
Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result)));
return result.ptr();
}
-void TypeParameter::set_flags(uint8_t flags) const {
- StoreNonPointer(&untag()->flags_, flags);
-}
-
const char* TypeParameter::CanonicalNameCString(bool is_class_type_parameter,
intptr_t base,
intptr_t index) {
@@ -27252,34 +27199,15 @@
const RecordType& result = RecordType::Handle(Z, RecordType::New(space));
result.set_field_types(field_types);
result.set_field_names(field_names);
- result.set_nullability(nullability);
result.SetHash(0);
- result.StoreNonPointer(&result.untag()->type_state_,
- UntaggedType::kAllocated);
+ result.set_flags(0);
+ result.set_nullability(nullability);
+ result.set_type_state(UntaggedAbstractType::kAllocated);
result.InitializeTypeTestingStubNonAtomic(
Code::Handle(Z, TypeTestingStubGenerator::DefaultCodeForType(result)));
return result.ptr();
}
-void RecordType::set_type_state(uint8_t state) const {
- ASSERT(state <= UntaggedRecordType::kFinalizedUninstantiated);
- StoreNonPointer(&untag()->type_state_, state);
-}
-
-void RecordType::SetIsFinalized() const {
- ASSERT(!IsFinalized());
- if (IsInstantiated()) {
- set_type_state(UntaggedRecordType::kFinalizedInstantiated);
- } else {
- set_type_state(UntaggedRecordType::kFinalizedUninstantiated);
- }
-}
-
-void RecordType::SetIsBeingFinalized() const {
- ASSERT(!IsFinalized() && !IsBeingFinalized());
- set_type_state(UntaggedRecordType::kBeingFinalized);
-}
-
RecordTypePtr RecordType::ToNullability(Nullability value,
Heap::Space space) const {
if (nullability() == value) {
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 6920a6e..aaf321b 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -8165,12 +8165,25 @@
// Subclasses of AbstractType are Type and TypeParameter.
class AbstractType : public Instance {
public:
- virtual bool IsFinalized() const;
- virtual void SetIsFinalized() const;
- virtual bool IsBeingFinalized() const;
- virtual void SetIsBeingFinalized() const;
+ static intptr_t flags_offset() {
+ return OFFSET_OF(UntaggedAbstractType, flags_);
+ }
- virtual Nullability nullability() const;
+ bool IsFinalized() const {
+ const auto state = type_state();
+ return (state == UntaggedAbstractType::kFinalizedInstantiated) ||
+ (state == UntaggedAbstractType::kFinalizedUninstantiated);
+ }
+ void SetIsFinalized() const;
+ bool IsBeingFinalized() const {
+ return type_state() == UntaggedAbstractType::kBeingFinalized;
+ }
+ void SetIsBeingFinalized() const;
+
+ Nullability nullability() const {
+ return static_cast<Nullability>(
+ UntaggedAbstractType::NullabilityBits::decode(untag()->flags_));
+ }
// Returns true if type has '?' nullability suffix, or it is a
// built-in type which is always nullable (Null, dynamic or void).
bool IsNullable() const { return nullability() == Nullability::kNullable; }
@@ -8462,45 +8475,33 @@
const AbstractType& other_type,
TypeEquality kind) const;
+ UntaggedAbstractType::TypeState type_state() const {
+ return static_cast<UntaggedAbstractType::TypeState>(
+ UntaggedAbstractType::TypeStateBits::decode(untag()->flags_));
+ }
+ void set_flags(uint32_t value) const;
+ void set_type_state(UntaggedAbstractType::TypeState value) const;
+ void set_nullability(Nullability value) const;
+
HEAP_OBJECT_IMPLEMENTATION(AbstractType, Instance);
friend class Class;
friend class Function;
friend class TypeArguments;
+ friend class TypeRef;
};
// A Type consists of a class, possibly parameterized with type
// arguments. Example: C<T1, T2>.
class Type : public AbstractType {
public:
- static intptr_t type_class_id_offset() {
- return OFFSET_OF(UntaggedType, type_class_id_);
- }
static intptr_t arguments_offset() {
return OFFSET_OF(UntaggedType, arguments_);
}
- static intptr_t type_state_offset() {
- return OFFSET_OF(UntaggedType, type_state_);
- }
static intptr_t hash_offset() { return OFFSET_OF(UntaggedType, hash_); }
- static intptr_t nullability_offset() {
- return OFFSET_OF(UntaggedType, nullability_);
- }
- virtual bool IsFinalized() const {
- return (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) ||
- (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated);
- }
- virtual void SetIsFinalized() const;
- virtual bool IsBeingFinalized() const {
- return untag()->type_state_ == UntaggedType::kBeingFinalized;
- }
- virtual void SetIsBeingFinalized() const;
virtual bool HasTypeClass() const {
ASSERT(type_class_id() != kIllegalCid);
return true;
}
- virtual Nullability nullability() const {
- return static_cast<Nullability>(untag()->nullability_);
- }
TypePtr ToNullability(Nullability value, Heap::Space space) const;
virtual classid_t type_class_id() const;
virtual ClassPtr type_class() const;
@@ -8616,11 +8617,6 @@
// in ClassIdTagType. This allows us to guard against that case, instead of
// silently truncating the cid.
void set_type_class_id(intptr_t id) const;
- void set_type_state(uint8_t state) const;
- void set_nullability(Nullability value) const {
- ASSERT(!IsCanonical());
- StoreNonPointer(&untag()->nullability_, static_cast<uint8_t>(value));
- }
static TypePtr New(Heap::Space space = Heap::kOld);
@@ -8648,28 +8644,10 @@
using PackedNumOptionalParameters =
UntaggedFunctionType::PackedNumOptionalParameters;
- static intptr_t type_state_offset() {
- return OFFSET_OF(UntaggedFunctionType, type_state_);
- }
static intptr_t hash_offset() {
return OFFSET_OF(UntaggedFunctionType, hash_);
}
- static intptr_t nullability_offset() {
- return OFFSET_OF(UntaggedFunctionType, nullability_);
- }
- virtual bool IsFinalized() const {
- return (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) ||
- (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated);
- }
- virtual void SetIsFinalized() const;
- virtual bool IsBeingFinalized() const {
- return untag()->type_state_ == UntaggedType::kBeingFinalized;
- }
- virtual void SetIsBeingFinalized() const;
virtual bool HasTypeClass() const { return false; }
- virtual Nullability nullability() const {
- return static_cast<Nullability>(untag()->nullability_);
- }
FunctionTypePtr ToNullability(Nullability value, Heap::Space space) const;
virtual classid_t type_class_id() const { return kIllegalCid; }
virtual bool IsInstantiated(Genericity genericity = kAny,
@@ -8919,12 +8897,6 @@
private:
void SetHash(intptr_t value) const;
- void set_type_state(uint8_t state) const;
- void set_nullability(Nullability value) const {
- ASSERT(!IsCanonical());
- StoreNonPointer(&untag()->nullability_, static_cast<uint8_t>(value));
- }
-
static FunctionTypePtr New(Heap::Space space);
FINAL_HEAP_OBJECT_IMPLEMENTATION(FunctionType, AbstractType);
@@ -8938,26 +8910,8 @@
// names of the named fields.
class RecordType : public AbstractType {
public:
- static intptr_t type_state_offset() {
- return OFFSET_OF(UntaggedRecordType, type_state_);
- }
static intptr_t hash_offset() { return OFFSET_OF(UntaggedRecordType, hash_); }
- static intptr_t nullability_offset() {
- return OFFSET_OF(UntaggedRecordType, nullability_);
- }
- virtual bool IsFinalized() const {
- return (untag()->type_state_ == UntaggedType::kFinalizedInstantiated) ||
- (untag()->type_state_ == UntaggedType::kFinalizedUninstantiated);
- }
- virtual void SetIsFinalized() const;
- virtual bool IsBeingFinalized() const {
- return untag()->type_state_ == UntaggedType::kBeingFinalized;
- }
- virtual void SetIsBeingFinalized() const;
virtual bool HasTypeClass() const { return false; }
- virtual Nullability nullability() const {
- return static_cast<Nullability>(untag()->nullability_);
- }
RecordTypePtr ToNullability(Nullability value, Heap::Space space) const;
virtual classid_t type_class_id() const { return kIllegalCid; }
virtual bool IsInstantiated(Genericity genericity = kAny,
@@ -9021,11 +8975,6 @@
private:
void SetHash(intptr_t value) const;
- void set_type_state(uint8_t state) const;
- void set_nullability(Nullability value) const {
- ASSERT(!IsCanonical());
- StoreNonPointer(&untag()->nullability_, static_cast<uint8_t>(value));
- }
void set_field_types(const Array& value) const;
void set_field_names(const Array& value) const;
@@ -9046,19 +8995,6 @@
public:
static intptr_t type_offset() { return OFFSET_OF(UntaggedTypeRef, type_); }
- virtual bool IsFinalized() const {
- const AbstractType& ref_type = AbstractType::Handle(type());
- return !ref_type.IsNull() && ref_type.IsFinalized();
- }
- virtual bool IsBeingFinalized() const {
- const AbstractType& ref_type = AbstractType::Handle(type());
- return ref_type.IsNull() || ref_type.IsBeingFinalized();
- }
- virtual Nullability nullability() const {
- const AbstractType& ref_type = AbstractType::Handle(type());
- ASSERT(!ref_type.IsNull());
- return ref_type.nullability();
- }
virtual bool HasTypeClass() const {
return (type() != AbstractType::null()) &&
AbstractType::Handle(type()).HasTypeClass();
@@ -9123,23 +9059,6 @@
// to the ObjectType.
class TypeParameter : public AbstractType {
public:
- virtual bool IsFinalized() const {
- return UntaggedTypeParameter::FinalizedBit::decode(untag()->flags_);
- }
- virtual void SetIsFinalized() const;
- virtual bool IsBeingFinalized() const {
- return UntaggedTypeParameter::BeingFinalizedBit::decode(untag()->flags_);
- }
- virtual void SetIsBeingFinalized() const;
- static intptr_t flags_offset() {
- return OFFSET_OF(UntaggedTypeParameter, flags_);
- }
- static intptr_t nullability_offset() {
- return OFFSET_OF(UntaggedTypeParameter, nullability_);
- }
- virtual Nullability nullability() const {
- return static_cast<Nullability>(untag()->nullability_);
- }
TypeParameterPtr ToNullability(Nullability value, Heap::Space space) const;
virtual bool HasTypeClass() const { return false; }
virtual classid_t type_class_id() const { return kIllegalCid; }
@@ -9232,8 +9151,6 @@
void set_parameterized_class(const Class& value) const;
void set_name(const String& value) const;
- void set_flags(uint8_t flags) const;
- void set_nullability(Nullability value) const;
static TypeParameterPtr New();
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 9ad5d15..625db6d 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -2607,26 +2607,29 @@
};
class UntaggedAbstractType : public UntaggedInstance {
+ protected:
+ // Accessed from generated code.
+ std::atomic<uword> type_test_stub_entry_point_;
+ // Accessed from generated code.
+ uint32_t flags_;
+ COMPRESSED_POINTER_FIELD(CodePtr, type_test_stub)
+ VISIT_FROM(type_test_stub)
+
public:
enum TypeState {
kAllocated, // Initial state.
kBeingFinalized, // In the process of being finalized.
kFinalizedInstantiated, // Instantiated type ready for use.
kFinalizedUninstantiated, // Uninstantiated type ready for use.
- // Adjust kTypeStateBitSize if more are added.
};
- protected:
- static constexpr intptr_t kTypeStateBitSize = 2;
- COMPILE_ASSERT(sizeof(std::atomic<word>) == sizeof(word));
+ using NullabilityBits = BitField<decltype(flags_), uint8_t, 0, 2>;
+ static constexpr intptr_t kNullabilityMask = NullabilityBits::mask();
- // Accessed from generated code.
- std::atomic<uword> type_test_stub_entry_point_;
-#if defined(DART_COMPRESSED_POINTERS)
- uint32_t padding_; // Makes Windows and Posix agree on layout.
-#endif
- COMPRESSED_POINTER_FIELD(CodePtr, type_test_stub)
- VISIT_FROM(type_test_stub)
+ static constexpr intptr_t kTypeStateShift = NullabilityBits::kNextBit;
+ static constexpr intptr_t kTypeStateBits = 2;
+ using TypeStateBits =
+ BitField<decltype(flags_), uint8_t, kTypeStateShift, kTypeStateBits>;
private:
RAW_HEAP_OBJECT_IMPLEMENTATION(AbstractType);
@@ -2636,18 +2639,29 @@
};
class UntaggedType : public UntaggedAbstractType {
+ public:
+ static constexpr intptr_t kTypeClassIdShift = TypeStateBits::kNextBit;
+ using TypeClassIdBits = BitField<decltype(flags_),
+ ClassIdTagType,
+ kTypeClassIdShift,
+ sizeof(ClassIdTagType) * kBitsPerByte>;
+
private:
RAW_HEAP_OBJECT_IMPLEMENTATION(Type);
COMPRESSED_POINTER_FIELD(TypeArgumentsPtr, arguments)
COMPRESSED_POINTER_FIELD(SmiPtr, hash)
VISIT_TO(hash)
- ClassIdTagType type_class_id_;
- uint8_t type_state_;
- uint8_t nullability_;
CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); }
+ ClassIdTagType type_class_id() const {
+ return TypeClassIdBits::decode(flags_);
+ }
+ void set_type_class_id(ClassIdTagType value) {
+ flags_ = TypeClassIdBits::update(value, flags_);
+ }
+
friend class compiler::target::UntaggedType;
friend class CidRewriteVisitor;
friend class UntaggedTypeArguments;
@@ -2665,8 +2679,6 @@
VISIT_TO(hash)
AtomicBitFieldContainer<uint32_t> packed_parameter_counts_;
AtomicBitFieldContainer<uint16_t> packed_type_parameter_counts_;
- uint8_t type_state_;
- uint8_t nullability_;
// The bit fields are public for use in kernel_to_il.cc.
public:
@@ -2716,8 +2728,6 @@
COMPRESSED_POINTER_FIELD(ArrayPtr, field_names);
COMPRESSED_POINTER_FIELD(SmiPtr, hash)
VISIT_TO(hash)
- uint8_t type_state_;
- uint8_t nullability_;
CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); }
};
@@ -2742,14 +2752,6 @@
ClassIdTagType parameterized_class_id_; // Or kFunctionCid for function tp.
uint8_t base_; // Number of enclosing function type parameters.
uint8_t index_; // Keep size in sync with BuildTypeParameterTypeTestStub.
- uint8_t flags_;
- uint8_t nullability_;
-
- public:
- using BeingFinalizedBit = BitField<decltype(flags_), bool, 0, 1>;
- using FinalizedBit =
- BitField<decltype(flags_), bool, BeingFinalizedBit::kNextBit, 1>;
- static constexpr intptr_t kFlagsBitSize = FinalizedBit::kNextBit;
private:
CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); }
diff --git a/runtime/vm/raw_object_fields.cc b/runtime/vm/raw_object_fields.cc
index b35eb19..ef68911 100644
--- a/runtime/vm/raw_object_fields.cc
+++ b/runtime/vm/raw_object_fields.cc
@@ -135,7 +135,6 @@
F(TypeArguments, nullability_) \
F(AbstractType, type_test_stub_) \
F(Type, type_test_stub_) \
- F(Type, type_class_id_) \
F(Type, arguments_) \
F(Type, hash_) \
F(FunctionType, type_test_stub_) \
diff --git a/runtime/vm/type_testing_stubs.cc b/runtime/vm/type_testing_stubs.cc
index 6478449..25a8882 100644
--- a/runtime/vm/type_testing_stubs.cc
+++ b/runtime/vm/type_testing_stubs.cc
@@ -1066,22 +1066,26 @@
if (strict_null_safety) {
__ BranchIf(NOT_EQUAL, &check_subtype_type_class_ids);
// If non-nullable Object, then the subtype must be legacy or non-nullable.
- __ CompareTypeNullabilityWith(
+ __ CompareAbstractTypeNullabilityWith(
TTSInternalRegs::kSuperTypeArgumentReg,
- static_cast<int8_t>(Nullability::kNonNullable));
+ static_cast<int8_t>(Nullability::kNonNullable),
+ TTSInternalRegs::kScratchReg);
__ BranchIf(NOT_EQUAL, &is_subtype);
__ Comment("Checking for legacy or non-nullable instance type argument");
compiler::Label subtype_is_type;
UnwrapAbstractType(assembler, TTSInternalRegs::kSubTypeArgumentReg,
TTSInternalRegs::kScratchReg, &subtype_is_type);
- __ CompareFunctionTypeNullabilityWith(
+ __ CompareAbstractTypeNullabilityWith(
TTSInternalRegs::kSubTypeArgumentReg,
- static_cast<int8_t>(Nullability::kNullable));
+ static_cast<int8_t>(Nullability::kNullable),
+ TTSInternalRegs::kScratchReg);
__ BranchIf(EQUAL, check_failed);
__ Jump(&is_subtype);
__ Bind(&subtype_is_type);
- __ CompareTypeNullabilityWith(TTSInternalRegs::kSubTypeArgumentReg,
- static_cast<int8_t>(Nullability::kNullable));
+ __ CompareAbstractTypeNullabilityWith(
+ TTSInternalRegs::kSubTypeArgumentReg,
+ static_cast<int8_t>(Nullability::kNullable),
+ TTSInternalRegs::kScratchReg);
__ BranchIf(EQUAL, check_failed);
__ Jump(&is_subtype);
} else {
@@ -1107,15 +1111,17 @@
compiler::Label supertype_is_type;
UnwrapAbstractType(assembler, TTSInternalRegs::kSuperTypeArgumentReg,
TTSInternalRegs::kScratchReg, &supertype_is_type);
- __ CompareFunctionTypeNullabilityWith(
+ __ CompareAbstractTypeNullabilityWith(
TTSInternalRegs::kSuperTypeArgumentReg,
- static_cast<int8_t>(Nullability::kNonNullable));
+ static_cast<int8_t>(Nullability::kNonNullable),
+ TTSInternalRegs::kScratchReg);
__ BranchIf(EQUAL, check_failed);
__ Jump(&is_subtype, compiler::Assembler::kNearJump);
__ Bind(&supertype_is_type);
- __ CompareTypeNullabilityWith(
+ __ CompareAbstractTypeNullabilityWith(
TTSInternalRegs::kSuperTypeArgumentReg,
- static_cast<int8_t>(Nullability::kNonNullable));
+ static_cast<int8_t>(Nullability::kNonNullable),
+ TTSInternalRegs::kScratchReg);
__ BranchIf(EQUAL, check_failed);
}
@@ -1165,9 +1171,10 @@
if (type.IsObjectType() || type.IsDartFunctionType()) {
if (strict_null_safety && type.IsNonNullable()) {
// Nullable types cannot be a subtype of a non-nullable type.
- __ CompareFunctionTypeNullabilityWith(
+ __ CompareAbstractTypeNullabilityWith(
TTSInternalRegs::kSubTypeArgumentReg,
- compiler::target::Nullability::kNullable);
+ static_cast<int8_t>(Nullability::kNullable),
+ TTSInternalRegs::kScratchReg);
__ BranchIf(EQUAL, check_failed);
}
// No further checks needed for non-nullable Object or Function.
@@ -1183,8 +1190,10 @@
__ Bind(&sub_is_type);
if (strict_null_safety && type.IsNonNullable()) {
// Nullable types cannot be a subtype of a non-nullable type in strict mode.
- __ CompareTypeNullabilityWith(TTSInternalRegs::kSubTypeArgumentReg,
- compiler::target::Nullability::kNullable);
+ __ CompareAbstractTypeNullabilityWith(
+ TTSInternalRegs::kSubTypeArgumentReg,
+ static_cast<int8_t>(Nullability::kNullable),
+ TTSInternalRegs::kScratchReg);
__ BranchIf(EQUAL, check_failed);
// Fall through to bottom type checks.
}