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

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

Issue 2857373002: Handle more constants in Constantifier (Closed)
Patch Set: Updated cf. comments. Created 3 years, 7 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_adapter.dart ('k') | pkg/compiler/lib/src/kernel/kernel_strategy.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.dart
diff --git a/pkg/compiler/lib/src/kernel/element_map.dart b/pkg/compiler/lib/src/kernel/element_map.dart
index 587995b4b932375bf3076a0f109cc5a004777318..1178dfd607e7471fac827610d59ed0d1bfee6502 100644
--- a/pkg/compiler/lib/src/kernel/element_map.dart
+++ b/pkg/compiler/lib/src/kernel/element_map.dart
@@ -19,6 +19,7 @@ import '../common_elements.dart';
import '../elements/elements.dart';
import '../elements/entities.dart';
import '../elements/types.dart';
+import '../environment.dart';
import '../frontend_strategy.dart';
import '../js_backend/constant_system_javascript.dart';
import '../js_backend/native_data.dart';
@@ -40,6 +41,7 @@ part 'types.dart';
/// Element builder used for creating elements and types corresponding to Kernel
/// IR nodes.
class KernelToElementMap extends KernelElementAdapterMixin {
+ final Environment _environment;
CommonElements _commonElements;
native.BehaviorBuilder _nativeBehaviorBuilder;
final DiagnosticReporter reporter;
@@ -73,7 +75,7 @@ class KernelToElementMap extends KernelElementAdapterMixin {
Map<ir.TreeNode, KLocalFunction> _localFunctionMap =
<ir.TreeNode, KLocalFunction>{};
- KernelToElementMap(this.reporter) {
+ KernelToElementMap(this.reporter, this._environment) {
_elementEnvironment = new KernelElementEnvironment(this);
_commonElements = new CommonElements(_elementEnvironment);
_constantEnvironment = new KernelConstantEnvironment(this);
@@ -1186,32 +1188,27 @@ class KernelConstantEnvironment implements ConstantEnvironment {
/// Evaluation environment used for computing [ConstantValue]s for
/// kernel based [ConstantExpression]s.
-class _EvaluationEnvironment implements Environment {
- final KernelToElementMap _worldBuilder;
+class _EvaluationEnvironment implements EvaluationEnvironment {
+ final KernelToElementMap _elementMap;
- _EvaluationEnvironment(this._worldBuilder);
+ _EvaluationEnvironment(this._elementMap);
@override
- CommonElements get commonElements {
- throw new UnimplementedError("_EvaluationEnvironment.commonElements");
- }
+ CommonElements get commonElements => _elementMap.commonElements;
@override
InterfaceType substByContext(InterfaceType base, InterfaceType target) {
- if (base.typeArguments.isNotEmpty) {
- throw new UnimplementedError("_EvaluationEnvironment.substByContext");
- }
- return base;
+ return _elementMap._substByContext(base, target);
}
@override
ConstantConstructor getConstructorConstant(ConstructorEntity constructor) {
- return _worldBuilder._getConstructorConstant(constructor);
+ return _elementMap._getConstructorConstant(constructor);
}
@override
ConstantExpression getFieldConstant(FieldEntity field) {
- return _worldBuilder._getFieldConstant(field);
+ return _elementMap._getFieldConstant(field);
}
@override
@@ -1221,7 +1218,7 @@ class _EvaluationEnvironment implements Environment {
@override
String readFromEnvironment(String name) {
- throw new UnimplementedError("_EvaluationEnvironment.readFromEnvironment");
+ return _elementMap._environment.valueOf(name);
}
}
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_adapter.dart ('k') | pkg/compiler/lib/src/kernel/kernel_strategy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698