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

Unified Diff: pkg/compiler/lib/src/universe/resolution_world_builder.dart

Issue 3002313002: Use KernelTypeGraphBuilder in KernelInferrerEngine (Closed)
Patch Set: Updated cf. comments. Created 3 years, 4 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/universe/element_world_builder.dart ('k') | pkg/compiler/lib/src/world.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/universe/resolution_world_builder.dart
diff --git a/pkg/compiler/lib/src/universe/resolution_world_builder.dart b/pkg/compiler/lib/src/universe/resolution_world_builder.dart
index 3b14f80c3fa20f63bff57c6f49d9f3cbb43883f2..a2b023590561949a2a8f0be4a6b67f45f9ccd1cf 100644
--- a/pkg/compiler/lib/src/universe/resolution_world_builder.dart
+++ b/pkg/compiler/lib/src/universe/resolution_world_builder.dart
@@ -89,6 +89,10 @@ abstract class ResolutionEnqueuerWorldBuilder extends ResolutionWorldBuilder {
/// Register the constant [use] with this world builder. Returns `true` if
/// the constant use was new to the world.
bool registerConstantUse(ConstantUse use);
+
+ bool isMemberProcessed(MemberEntity member);
+ void registerProcessedMember(MemberEntity member);
+ Iterable<MemberEntity> get processedMembers;
}
/// The type and kind of an instantiation registered through
@@ -372,6 +376,8 @@ abstract class ResolutionWorldBuilderBase
final Set<ConstantValue> _constantValues = new Set<ConstantValue>();
+ Set<MemberEntity> _processedMembers = new Set<MemberEntity>();
+
bool get isClosed => _closed;
ResolutionWorldBuilderBase(
@@ -391,6 +397,14 @@ abstract class ResolutionWorldBuilderBase
Iterable<ClassEntity> get processedClasses => _processedClasses.keys
.where((cls) => _processedClasses[cls].isInstantiated);
+ bool isMemberProcessed(MemberEntity member) =>
+ _processedMembers.contains(member);
+ void registerProcessedMember(MemberEntity member) {
+ _processedMembers.add(member);
+ }
+
+ Iterable<MemberEntity> get processedMembers => _processedMembers;
+
ClosedWorld get closedWorldForTesting {
if (!_closed) {
failedAt(
@@ -1003,6 +1017,7 @@ abstract class KernelResolutionWorldBuilderBase
liveNativeClasses: _nativeResolutionEnqueuer.liveNativeClasses,
liveInstanceMembers: _liveInstanceMembers,
assignedInstanceMembers: computeAssignedInstanceMembers(),
+ processedMembers: _processedMembers,
allTypedefs: _allTypedefs,
mixinUses: _mixinUses,
typesImplementedBySubclasses: typesImplementedBySubclasses,
« no previous file with comments | « pkg/compiler/lib/src/universe/element_world_builder.dart ('k') | pkg/compiler/lib/src/world.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698