| Index: runtime/vm/code_generator_x64.cc
|
| ===================================================================
|
| --- runtime/vm/code_generator_x64.cc (revision 6144)
|
| +++ runtime/vm/code_generator_x64.cc (working copy)
|
| @@ -714,10 +714,13 @@
|
| const bool returns_null = node->value()->IsLiteralNode() &&
|
| node->value()->AsLiteralNode()->literal().IsNull();
|
| const RawFunction::Kind kind = parsed_function().function().kind();
|
| - // Implicit getters do not need a type check at return.
|
| - if (!returns_null &&
|
| - (kind != RawFunction::kImplicitGetter) &&
|
| - (kind != RawFunction::kConstImplicitGetter)) {
|
| + const bool is_implicit_getter =
|
| + (kind == RawFunction::kImplicitGetter) ||
|
| + (kind == RawFunction::kConstImplicitGetter);
|
| + const bool is_static = parsed_function().function().is_static();
|
| + // Implicit getters do not need a type check at return, unless they compute
|
| + // the initial value of a static field.
|
| + if (!returns_null && (is_static || !is_implicit_getter)) {
|
| GenerateAssertAssignable(
|
| node->id(),
|
| node->value()->token_index(),
|
|
|