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

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

Issue 2974633002: Use JsStrategy, remove KernelBackendStrategy (Closed)
Patch Set: Delete test Created 3 years, 5 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 | « no previous file | pkg/compiler/lib/src/kernel/kernel_backend_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_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 f938dc25a9ce1740899388bb0dbfe183498ddbc6..d53af0c39545bb72400800fb56b41c42b758088e 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -965,15 +965,26 @@ abstract class KElementCreatorMixin implements ElementCreatorMixin {
/// Implementation of [KernelToElementMapForImpact] that only supports world
/// impact computation.
-// TODO(johnniwinther): Merge this with [KernelToElementMapForImpactImpl] when
-// [JsStrategy] is the default.
-abstract class KernelToElementMapForImpactImpl
- implements
- KernelToElementMapBase,
- KernelToElementMapForImpact,
- KernelToElementMapForImpactMixin {
+class KernelToElementMapForImpactImpl extends KernelToElementMapBase
+ with
+ KernelToElementMapForImpactMixin,
+ ElementCreatorMixin,
+ KElementCreatorMixin {
native.BehaviorBuilder _nativeBehaviorBuilder;
+ KernelToElementMapForImpactImpl(
+ DiagnosticReporter reporter, Environment environment)
+ : super(reporter, environment);
+
+ @override
+ bool checkFamily(Entity entity) {
+ assert(
+ '$entity'.startsWith(kElementPrefix),
+ failedAt(entity,
+ "Unexpected entity $entity, expected family $kElementPrefix."));
+ return true;
+ }
+
/// Adds libraries in [program] to the set of libraries.
///
/// The main method of the first program is used as the main method for the
@@ -1000,121 +1011,6 @@ abstract class KernelToElementMapForImpactImpl
}
}
-/// Implementation of [KernelToElementMapForImpact] that only supports world
-/// impact computation.
-// TODO(johnniwinther): Merge this with [KernelToElementMapForImpactImpl] when
-// [JsStrategy] is the default.
-class KernelToElementMapForImpactImpl2 extends KernelToElementMapBase
- with
- KernelToElementMapForImpactMixin,
- KernelToElementMapForImpactImpl,
- ElementCreatorMixin,
- KElementCreatorMixin {
- KernelToElementMapForImpactImpl2(
- DiagnosticReporter reporter, Environment environment)
- : super(reporter, environment);
-
- @override
- bool checkFamily(Entity entity) {
- assert(
- '$entity'.startsWith(kElementPrefix),
- failedAt(entity,
- "Unexpected entity $entity, expected family $kElementPrefix."));
- return true;
- }
-}
-
-/// Mixin for implementing [KernelToElementMapForBuilding] shared between
-/// classes that extend [KernelToElementMapBase], i.e. not [KernelAstAdapter].
-abstract class KernelToElementMapForBuildingFromBaseMixin
- implements KernelToElementMapForBuilding, KernelToElementMapBase {
- @override
- ConstantValue getFieldConstantValue(ir.Field field) {
- // TODO(johnniwinther): Cache the result in [FieldData].
- return getConstantValue(field.initializer,
- requireConstant: field.isConst, implicitNull: !field.isConst);
- }
-
- bool hasConstantFieldInitializer(covariant IndexedField field) {
- FieldData data = _memberData[field.memberIndex];
- return getFieldConstantValue(data.node) != null;
- }
-
- ConstantValue getConstantFieldInitializer(covariant IndexedField field) {
- FieldData data = _memberData[field.memberIndex];
- ConstantValue value = getFieldConstantValue(data.node);
- assert(value != null,
- failedAt(field, "Field $field doesn't have a constant initial value."));
- return value;
- }
-
- void forEachParameter(covariant IndexedFunction function,
- void f(DartType type, String name, ConstantValue defaultValue)) {
- FunctionData data = _memberData[function.memberIndex];
- data.forEachParameter(this, f);
- }
-}
-
-/// Element builder used for creating elements and types corresponding to Kernel
-/// IR nodes.
-// TODO(johnniwinther): Use this in the JsStrategy
-class KernelToElementMapForBuildingImpl extends KernelToElementMapBase
- with
- KernelToElementMapForBuildingMixin,
- KernelToElementMapForBuildingFromBaseMixin,
- ElementCreatorMixin,
- KElementCreatorMixin
- implements KernelToWorldBuilder {
- KernelToElementMapForBuildingImpl(
- DiagnosticReporter reporter, Environment environment)
- : super(reporter, environment);
-
- @override
- bool checkFamily(Entity entity) {
- assert(
- '$entity'.startsWith(kElementPrefix),
- failedAt(entity,
- "Unexpected entity $entity, expected family $kElementPrefix."));
- return true;
- }
-
- ConstantEnvironment get constantEnvironment => _constantEnvironment;
-
- ir.Library getKernelLibrary(KLibrary entity) =>
- _libraryEnvs[entity.libraryIndex].library;
-
- ir.Class getKernelClass(KClass entity) => _classEnvs[entity.classIndex].cls;
-
- @override
- Spannable getSpannable(MemberEntity member, ir.Node node) {
- return _getSpannable(member, node);
- }
-
- @override
- ir.Member getMemberNode(MemberEntity member) {
- return _getMemberNode(member);
- }
-
- @override
- ir.Class getClassNode(ClassEntity cls) {
- return _getClassNode(cls);
- }
-}
-
-/// [KernelToElementMap] implementation used for both world impact computation
-/// and SSA building.
-// TODO(johnniwinther): Remove this when [JsStrategy] is the default.
-class KernelToElementMapImpl extends KernelToElementMapForBuildingImpl
- with
- KernelToElementMapForImpactMixin,
- KernelToElementMapForImpactImpl,
- ElementCreatorMixin,
- KElementCreatorMixin
- implements KernelToElementMapForImpactImpl2 {
- KernelToElementMapImpl(DiagnosticReporter reporter, Environment environment)
- : super(reporter, environment);
-}
-
class KernelElementEnvironment implements ElementEnvironment {
final KernelToElementMapBase elementMap;
@@ -1781,7 +1677,6 @@ class JsToFrontendMapImpl extends JsToFrontendMapBase
class JsKernelToElementMap extends KernelToElementMapBase
with
KernelToElementMapForBuildingMixin,
- KernelToElementMapForBuildingFromBaseMixin,
JsElementCreatorMixin,
// TODO(johnniwinther): Avoid mixin in [ElementCreatorMixin]. The
// codegen world should be a strict subset of the resolution world and
@@ -1931,4 +1826,30 @@ class JsKernelToElementMap extends KernelToElementMapBase
ir.Class getClassNode(ClassEntity cls) {
return _getClassNode(cls);
}
+
+ @override
+ ConstantValue getFieldConstantValue(ir.Field field) {
+ // TODO(johnniwinther): Cache the result in [FieldData].
+ return getConstantValue(field.initializer,
+ requireConstant: field.isConst, implicitNull: !field.isConst);
+ }
+
+ bool hasConstantFieldInitializer(covariant IndexedField field) {
+ FieldData data = _memberData[field.memberIndex];
+ return getFieldConstantValue(data.node) != null;
+ }
+
+ ConstantValue getConstantFieldInitializer(covariant IndexedField field) {
+ FieldData data = _memberData[field.memberIndex];
+ ConstantValue value = getFieldConstantValue(data.node);
+ assert(value != null,
+ failedAt(field, "Field $field doesn't have a constant initial value."));
+ return value;
+ }
+
+ void forEachParameter(covariant IndexedFunction function,
+ void f(DartType type, String name, ConstantValue defaultValue)) {
+ FunctionData data = _memberData[function.memberIndex];
+ data.forEachParameter(this, f);
+ }
}
« no previous file with comments | « no previous file | pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698