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

Side by Side Diff: pkg/compiler/lib/src/universe/resolution_world_builder.dart

Issue 2981633002: Introduce TypedefEntity (Closed)
Patch Set: Updated cf. comments 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of world_builder; 5 part of world_builder;
6 6
7 abstract class ResolutionWorldBuilder implements WorldBuilder, OpenWorld { 7 abstract class ResolutionWorldBuilder implements WorldBuilder, OpenWorld {
8 /// Set of all local functions in the program. Used by the mirror tracking 8 /// Set of all local functions in the program. Used by the mirror tracking
9 /// system to find all live closure instances. 9 /// system to find all live closure instances.
10 Iterable<Local> get localFunctions; 10 Iterable<Local> get localFunctions;
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 final SelectorConstraintsStrategy selectorConstraintsStrategy; 352 final SelectorConstraintsStrategy selectorConstraintsStrategy;
353 353
354 bool hasRuntimeTypeSupport = false; 354 bool hasRuntimeTypeSupport = false;
355 bool hasIsolateSupport = false; 355 bool hasIsolateSupport = false;
356 bool hasFunctionApplySupport = false; 356 bool hasFunctionApplySupport = false;
357 357
358 bool _closed = false; 358 bool _closed = false;
359 ClosedWorld _closedWorldCache; 359 ClosedWorld _closedWorldCache;
360 final Set<MemberEntity> _liveInstanceMembers = new Set<MemberEntity>(); 360 final Set<MemberEntity> _liveInstanceMembers = new Set<MemberEntity>();
361 361
362 final Set<TypedefElement> _allTypedefs = new Set<TypedefElement>(); 362 final Set<TypedefEntity> _allTypedefs = new Set<TypedefEntity>();
363 363
364 final Map<ClassEntity, Set<ClassEntity>> _mixinUses = 364 final Map<ClassEntity, Set<ClassEntity>> _mixinUses =
365 new Map<ClassEntity, Set<ClassEntity>>(); 365 new Map<ClassEntity, Set<ClassEntity>>();
366 366
367 // We keep track of subtype and subclass relationships in four 367 // We keep track of subtype and subclass relationships in four
368 // distinct sets to make class hierarchy analysis faster. 368 // distinct sets to make class hierarchy analysis faster.
369 final Map<ClassEntity, ClassHierarchyNode> _classHierarchyNodes = 369 final Map<ClassEntity, ClassHierarchyNode> _classHierarchyNodes =
370 <ClassEntity, ClassHierarchyNode>{}; 370 <ClassEntity, ClassHierarchyNode>{};
371 final Map<ClassEntity, ClassSet> _classSets = <ClassEntity, ClassSet>{}; 371 final Map<ClassEntity, ClassSet> _classSets = <ClassEntity, ClassSet>{};
372 372
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 return usage; 769 return usage;
770 }); 770 });
771 } 771 }
772 772
773 /// Returns an iterable over all mixin applications that mixin [cls]. 773 /// Returns an iterable over all mixin applications that mixin [cls].
774 Iterable<ClassEntity> allMixinUsesOf(ClassEntity cls) { 774 Iterable<ClassEntity> allMixinUsesOf(ClassEntity cls) {
775 Iterable<ClassEntity> uses = _mixinUses[cls]; 775 Iterable<ClassEntity> uses = _mixinUses[cls];
776 return uses != null ? uses : const <ClassEntity>[]; 776 return uses != null ? uses : const <ClassEntity>[];
777 } 777 }
778 778
779 void registerTypedef(TypedefElement typdef) { 779 void registerTypedef(TypedefEntity typdef) {
780 _allTypedefs.add(typdef); 780 _allTypedefs.add(typdef);
781 } 781 }
782 782
783 void registerMixinUse( 783 void registerMixinUse(
784 covariant ClassEntity mixinApplication, covariant ClassEntity mixin) { 784 covariant ClassEntity mixinApplication, covariant ClassEntity mixin) {
785 // TODO(johnniwinther): Add map restricted to live classes. 785 // TODO(johnniwinther): Add map restricted to live classes.
786 // We don't support patch classes as mixin. 786 // We don't support patch classes as mixin.
787 Set<ClassEntity> users = 787 Set<ClassEntity> users =
788 _mixinUses.putIfAbsent(mixin, () => new Set<ClassEntity>()); 788 _mixinUses.putIfAbsent(mixin, () => new Set<ClassEntity>());
789 users.add(mixinApplication); 789 users.add(mixinApplication);
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 typesImplementedBySubclasses: typesImplementedBySubclasses, 1008 typesImplementedBySubclasses: typesImplementedBySubclasses,
1009 classHierarchyNodes: _classHierarchyNodes, 1009 classHierarchyNodes: _classHierarchyNodes,
1010 classSets: _classSets); 1010 classSets: _classSets);
1011 } 1011 }
1012 1012
1013 @override 1013 @override
1014 void registerClass(ClassEntity cls) { 1014 void registerClass(ClassEntity cls) {
1015 throw new UnimplementedError('KernelResolutionWorldBuilder.registerClass'); 1015 throw new UnimplementedError('KernelResolutionWorldBuilder.registerClass');
1016 } 1016 }
1017 } 1017 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/resolution/resolution_strategy.dart ('k') | pkg/compiler/lib/src/world.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698