| 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);
|
| }
|
| }
|
|
|
|
|