| Index: pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| index 6f2358f92db246d6b335b6376d99f895aab066a3..75fa48c4775ee633087fc7c2d577651d6cbcd459 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| @@ -697,10 +697,10 @@ abstract class KernelToElementMapBase extends KernelToElementMapBaseMixin {
|
| return data.getConstructorConstant(this, constructor);
|
| }
|
|
|
| - ConstantExpression _getFieldConstant(IndexedField field) {
|
| + ConstantExpression _getFieldConstantExpression(IndexedField field) {
|
| assert(checkFamily(field));
|
| FieldData data = _memberData[field.memberIndex];
|
| - return data.getFieldConstant(this, field);
|
| + return data.getFieldConstantExpression(this);
|
| }
|
|
|
| InterfaceType _asInstanceOf(InterfaceType type, ClassEntity cls) {
|
| @@ -1650,7 +1650,7 @@ class _EvaluationEnvironment implements EvaluationEnvironment {
|
|
|
| @override
|
| ConstantExpression getFieldConstant(FieldEntity field) {
|
| - return _elementMap._getFieldConstant(field);
|
| + return _elementMap._getFieldConstantExpression(field);
|
| }
|
|
|
| @override
|
| @@ -2139,23 +2139,22 @@ class JsKernelToElementMap extends KernelToElementMapBase
|
| }
|
|
|
| @override
|
| - ConstantValue getFieldConstantValue(ir.Field field) {
|
| - // TODO(johnniwinther): Cache the result in [FieldData].
|
| - return getConstantValue(field.initializer,
|
| - requireConstant: field.isConst, implicitNull: !field.isConst);
|
| + ConstantValue getFieldConstantValue(covariant IndexedField field) {
|
| + assert(checkFamily(field));
|
| + FieldData data = _memberData[field.memberIndex];
|
| + return data.getFieldConstantValue(this);
|
| }
|
|
|
| bool hasConstantFieldInitializer(covariant IndexedField field) {
|
| + assert(checkFamily(field));
|
| FieldData data = _memberData[field.memberIndex];
|
| - return getFieldConstantValue(data.definition.node) != null;
|
| + return data.hasConstantFieldInitializer(this);
|
| }
|
|
|
| ConstantValue getConstantFieldInitializer(covariant IndexedField field) {
|
| + assert(checkFamily(field));
|
| FieldData data = _memberData[field.memberIndex];
|
| - ConstantValue value = getFieldConstantValue(data.definition.node);
|
| - assert(value != null,
|
| - failedAt(field, "Field $field doesn't have a constant initial value."));
|
| - return value;
|
| + return data.getConstantFieldInitializer(this);
|
| }
|
|
|
| void forEachParameter(covariant IndexedFunction function,
|
|
|