| Index: runtime/vm/flow_graph_type_propagator.cc
|
| diff --git a/runtime/vm/flow_graph_type_propagator.cc b/runtime/vm/flow_graph_type_propagator.cc
|
| index d0391dbf81c07e7854b186d95c119445ea8d3b5f..a0a60078010a4a7eb88105fd93585f936e28a1a8 100644
|
| --- a/runtime/vm/flow_graph_type_propagator.cc
|
| +++ b/runtime/vm/flow_graph_type_propagator.cc
|
| @@ -947,13 +947,18 @@ CompileType LoadStaticFieldInstr::ComputeType() const {
|
| abstract_type = &AbstractType::ZoneHandle(field.type());
|
| }
|
| ASSERT(field.is_static());
|
| - if (field.is_final() && !FLAG_fields_may_be_reset) {
|
| - const Instance& obj = Instance::Handle(field.StaticValue());
|
| - if ((obj.raw() != Object::sentinel().raw()) &&
|
| - (obj.raw() != Object::transition_sentinel().raw()) &&
|
| - !obj.IsNull()) {
|
| - is_nullable = CompileType::kNonNullable;
|
| - cid = obj.GetClassId();
|
| + if (field.is_final()) {
|
| + if (!FLAG_fields_may_be_reset) {
|
| + const Instance& obj = Instance::Handle(field.StaticValue());
|
| + if ((obj.raw() != Object::sentinel().raw()) &&
|
| + (obj.raw() != Object::transition_sentinel().raw()) &&
|
| + !obj.IsNull()) {
|
| + is_nullable = CompileType::kNonNullable;
|
| + cid = obj.GetClassId();
|
| + }
|
| + } else {
|
| + cid = field.guarded_cid();
|
| + if (!IsNullableCid(cid)) is_nullable = CompileType::kNonNullable;
|
| }
|
| }
|
| if (Field::IsExternalizableCid(cid)) {
|
|
|