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

Unified Diff: pkg/compiler/lib/src/js_backend/enqueuer.dart

Issue 2314703002: Split World usage into open, inference, and closed world. (Closed)
Patch Set: Created 4 years, 3 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
Index: pkg/compiler/lib/src/js_backend/enqueuer.dart
diff --git a/pkg/compiler/lib/src/js_backend/enqueuer.dart b/pkg/compiler/lib/src/js_backend/enqueuer.dart
index 80f241f29cb9d11eb95ac98a6488424d68b5fa52..dcdac2af96aa5a2c1d150ca980ab9f62ea0352da 100644
--- a/pkg/compiler/lib/src/js_backend/enqueuer.dart
+++ b/pkg/compiler/lib/src/js_backend/enqueuer.dart
@@ -85,7 +85,7 @@ class CodegenEnqueuer implements Enqueuer {
Registry get mirrorDependencies => _compiler.mirrorDependencies;
- ClassWorld get _world => _compiler.world;
+ ClassWorld get _world => _compiler.closedWorld;
bool get queueIsEmpty => queue.isEmpty;
@@ -109,8 +109,7 @@ class CodegenEnqueuer implements Enqueuer {
// Codegen inlines field initializers. It only needs to generate
// code for checked setters.
if (element.isField && element.isInstanceMember) {
- if (!options.enableTypeAssertions ||
- element.enclosingElement.isClosure) {
+ if (!options.enableTypeAssertions || element.enclosingElement.isClosure) {
return;
}
}
@@ -145,8 +144,7 @@ class CodegenEnqueuer implements Enqueuer {
universe.registerTypeInstantiation(type,
isNative: isNative,
byMirrors: mirrorUsage, onImplemented: (ClassElement cls) {
- backend
- .registerImplementedClass(cls, this, globalDependencies);
+ backend.registerImplementedClass(cls, this, globalDependencies);
});
// TODO(johnniwinther): Share this reasoning with [Universe].
if (!cls.isAbstract || isNative || mirrorUsage) {
@@ -178,7 +176,6 @@ class CodegenEnqueuer implements Enqueuer {
// Note: this assumes that there are no non-native fields on native
// classes, which may not be the case when a native class is subclassed.
if (backend.isNative(cls)) {
- _compiler.world.registerUsedElement(member);
if (universe.hasInvokedGetter(member, _world) ||
universe.hasInvocation(member, _world)) {
addToWorkList(member);
@@ -271,8 +268,7 @@ class CodegenEnqueuer implements Enqueuer {
// We only tell the backend once that [superclass] was instantiated, so
// any additional dependencies must be treated as global
// dependencies.
- backend.registerInstantiatedClass(
- superclass, this, globalDependencies);
+ backend.registerInstantiatedClass(superclass, this, globalDependencies);
}
ClassElement superclass = cls;
@@ -307,8 +303,7 @@ class CodegenEnqueuer implements Enqueuer {
includedEnclosing: enclosingWasIncluded)) {
logEnqueueReflectiveAction(ctor);
ClassElement cls = ctor.declaration.enclosingClass;
- backend.registerInstantiatedType(
- cls.rawType, this, mirrorDependencies,
+ backend.registerInstantiatedType(cls.rawType, this, mirrorDependencies,
mirrorUsage: true);
registerStaticUse(new StaticUse.foreignUse(ctor.declaration));
}
@@ -356,8 +351,7 @@ class CodegenEnqueuer implements Enqueuer {
if (includeClass) {
logEnqueueReflectiveAction(cls, "register");
ClassElement decl = cls.declaration;
- backend.registerInstantiatedType(
- decl.rawType, this, mirrorDependencies,
+ backend.registerInstantiatedType(decl.rawType, this, mirrorDependencies,
mirrorUsage: true);
}
// If the class is never instantiated, we know nothing of it can possibly
@@ -382,13 +376,11 @@ class CodegenEnqueuer implements Enqueuer {
/// that none of its methods are reflectable, unless reflectable by
/// inheritance.
void enqueueReflectiveSpecialClasses() {
- Iterable<ClassElement> classes =
- backend.classesRequiredForReflection;
+ Iterable<ClassElement> classes = backend.classesRequiredForReflection;
for (ClassElement cls in classes) {
if (backend.referencedFromMirrorSystem(cls)) {
logEnqueueReflectiveAction(cls);
- backend.registerInstantiatedType(
- cls.rawType, this, mirrorDependencies,
+ backend.registerInstantiatedType(cls.rawType, this, mirrorDependencies,
mirrorUsage: true);
}
}

Powered by Google App Engine
This is Rietveld 408576698