Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1003)

Unified Diff: pkg/compiler/lib/src/kernel/element_map_impl.dart

Issue 3009593002: It's alive (first kernel inference test) (Closed)
Patch Set: Updated cf. comment Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_map.dart ('k') | pkg/compiler/lib/src/kernel/env.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_map.dart ('k') | pkg/compiler/lib/src/kernel/env.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698