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

Unified Diff: pkg/compiler/lib/src/enqueue.dart

Issue 2846433003: Run closed_world2_test using the normal compiler pipeline. (Closed)
Patch Set: Updated cf. comments Created 3 years, 8 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/deferred_load.dart ('k') | pkg/compiler/lib/src/frontend_strategy.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/enqueue.dart
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index fcc594c86760ee137f7cdb8c9af6e0576701739c..d803bc5143bbed78fb4ff766005561735f925f30 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -10,11 +10,11 @@ import 'common/resolution.dart' show Resolution;
import 'common/tasks.dart' show CompilerTask;
import 'common/work.dart' show WorkItem;
import 'common.dart';
+import 'common_elements.dart' show ElementEnvironment;
import 'constants/values.dart';
import 'compiler.dart' show Compiler;
import 'options.dart';
-import 'elements/elements.dart'
- show AnalyzableElement, ClassElement, MemberElement;
+import 'elements/elements.dart' show AnalyzableElement, MemberElement;
import 'elements/entities.dart';
import 'elements/resolution_types.dart' show ResolutionTypedefType;
import 'elements/types.dart';
@@ -85,7 +85,8 @@ abstract class Enqueuer {
/// provided the impact strategy will remove it from the element impact cache,
/// if it is no longer needed.
void applyImpact(WorldImpact worldImpact, {var impactSource});
- bool checkNoEnqueuedInvokedInstanceMethods();
+ bool checkNoEnqueuedInvokedInstanceMethods(
+ ElementEnvironment elementEnvironment);
/// Check the enqueuer queue is empty or fail otherwise.
void checkQueueIsEmpty();
@@ -255,8 +256,9 @@ class ResolutionEnqueuer extends EnqueuerImpl {
});
}
- bool checkNoEnqueuedInvokedInstanceMethods() {
- return strategy.checkEnqueuerConsistency(this);
+ bool checkNoEnqueuedInvokedInstanceMethods(
+ ElementEnvironment elementEnvironment) {
+ return strategy.checkEnqueuerConsistency(this, elementEnvironment);
}
void checkClass(ClassEntity cls) {
@@ -506,7 +508,9 @@ class EnqueuerStrategy {
void processConstantUse(EnqueuerImpl enqueuer, ConstantUse constantUse) {}
/// Check enqueuer consistency after the queue has been closed.
- bool checkEnqueuerConsistency(EnqueuerImpl enqueuer) => true;
+ bool checkEnqueuerConsistency(
+ EnqueuerImpl enqueuer, ElementEnvironment elementEnvironment) =>
+ true;
/// Process [work] using [f].
void processWorkItem(void f(WorkItem work), WorkItem work) {
@@ -549,14 +553,15 @@ class TreeShakingEnqueuerStrategy extends EnqueuerStrategy {
}
/// Check enqueuer consistency after the queue has been closed.
- bool checkEnqueuerConsistency(EnqueuerImpl enqueuer) {
+ bool checkEnqueuerConsistency(
+ EnqueuerImpl enqueuer, ElementEnvironment elementEnvironment) {
enqueuer.task.measure(() {
// Run through the classes and see if we need to enqueue more methods.
- for (ClassElement classElement
+ for (ClassEntity classElement
in enqueuer.worldBuilder.directlyInstantiatedClasses) {
- for (ClassElement currentClass = classElement;
+ for (ClassEntity currentClass = classElement;
currentClass != null;
- currentClass = currentClass.superclass) {
+ currentClass = elementEnvironment.getSuperClass(currentClass)) {
enqueuer.checkClass(currentClass);
}
}
« no previous file with comments | « pkg/compiler/lib/src/deferred_load.dart ('k') | pkg/compiler/lib/src/frontend_strategy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698