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

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

Issue 2875313002: Access BackendUsage through ClosedWorld (Closed)
Patch Set: 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
Index: pkg/compiler/lib/src/world.dart
diff --git a/pkg/compiler/lib/src/world.dart b/pkg/compiler/lib/src/world.dart
index 817138a43debc2017cf7880363b9f92757f55462..21088007e8b24d13c4d1a3d6a513babfe93b5746 100644
--- a/pkg/compiler/lib/src/world.dart
+++ b/pkg/compiler/lib/src/world.dart
@@ -42,6 +42,8 @@ abstract class World {}
/// This precise knowledge about what's live in the program is later used in
/// optimizations and other compiler decisions during code generation.
abstract class ClosedWorld implements World {
+ BackendUsage get backendUsage;
+
NativeData get nativeData;
InterceptorData get interceptorData;
@@ -397,7 +399,7 @@ abstract class ClosedWorldBase implements ClosedWorld, ClosedWorldRefiner {
final ConstantSystem constantSystem;
final NativeData nativeData;
final InterceptorData interceptorData;
- final BackendUsage _backendUsage;
+ final BackendUsage backendUsage;
final FunctionSet _allFunctions;
@@ -436,7 +438,7 @@ abstract class ClosedWorldBase implements ClosedWorld, ClosedWorldRefiner {
this.constantSystem,
this.nativeData,
this.interceptorData,
- BackendUsage backendUsage,
+ this.backendUsage,
ResolutionWorldBuilder resolutionWorldBuilder,
FunctionSet functionSet,
Iterable<TypedefElement> allTypedefs,
@@ -444,8 +446,7 @@ abstract class ClosedWorldBase implements ClosedWorld, ClosedWorldRefiner {
Map<ClassEntity, Set<ClassEntity>> typesImplementedBySubclasses,
Map<ClassEntity, ClassHierarchyNode> classHierarchyNodes,
Map<ClassEntity, ClassSet> classSets})
- : this._backendUsage = backendUsage,
- this._resolverWorld = resolutionWorldBuilder,
+ : this._resolverWorld = resolutionWorldBuilder,
this._allFunctions = functionSet,
this._allTypedefs = allTypedefs,
this._mixinUses = mixinUses,
@@ -1004,7 +1005,7 @@ abstract class ClosedWorldBase implements ClosedWorld, ClosedWorldRefiner {
TypeMask extendMaskIfReachesAll(Selector selector, TypeMask mask) {
bool canReachAll = true;
if (mask != null) {
- canReachAll = _backendUsage.isInvokeOnUsed &&
+ canReachAll = backendUsage.isInvokeOnUsed &&
mask.needsNoSuchMethodHandling(selector, this);
}
return canReachAll ? commonMasks.dynamicType : mask;

Powered by Google App Engine
This is Rietveld 408576698