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

Side by Side Diff: pkg/compiler/lib/src/resolution/class_members.dart

Issue 1376863004: Avoid eager enqueueing from resolution (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Update minimal_resolution_test. Created 5 years, 2 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 library dart2js.resolution.compute_members; 5 library dart2js.resolution.compute_members;
6 6
7 import '../common/names.dart' show 7 import '../common/names.dart' show
8 Identifiers; 8 Identifiers;
9 import '../common/resolution.dart' show 9 import '../common/resolution.dart' show
10 Resolution; 10 Resolution;
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 /// If `true` interface members are the non-static class member. 843 /// If `true` interface members are the non-static class member.
844 bool interfaceMembersAreClassMembers = true; 844 bool interfaceMembersAreClassMembers = true;
845 845
846 Map<Name, Member> classMembers; 846 Map<Name, Member> classMembers;
847 Map<Name, MemberSignature> interfaceMembers; 847 Map<Name, MemberSignature> interfaceMembers;
848 848
849 /// Creates the necessary maps and [MembersCreator] for compute members of 849 /// Creates the necessary maps and [MembersCreator] for compute members of
850 /// this class. 850 /// this class.
851 MembersCreator _prepareCreator(Compiler compiler) { 851 MembersCreator _prepareCreator(Compiler compiler) {
852 if (classMembers == null) { 852 if (classMembers == null) {
853 ensureResolved(compiler.resolution);
853 classMembers = new Map<Name, Member>(); 854 classMembers = new Map<Name, Member>();
854 855
855 if (interfaceMembersAreClassMembers) { 856 if (interfaceMembersAreClassMembers) {
856 ClassMemberMixin superclass = this.superclass; 857 ClassMemberMixin superclass = this.superclass;
857 if ((superclass != null && 858 if ((superclass != null &&
858 (!superclass.interfaceMembersAreClassMembers || 859 (!superclass.interfaceMembersAreClassMembers ||
859 superclass.isMixinApplication)) || 860 superclass.isMixinApplication)) ||
860 !interfaces.isEmpty) { 861 !interfaces.isEmpty) {
861 interfaceMembersAreClassMembers = false; 862 interfaceMembersAreClassMembers = false;
862 } 863 }
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
949 message: "Members have not been fully computed for $this.")); 950 message: "Members have not been fully computed for $this."));
950 if (interfaceMembersAreClassMembers) { 951 if (interfaceMembersAreClassMembers) {
951 classMembers.forEach((_, member) { 952 classMembers.forEach((_, member) {
952 if (!member.isStatic) f(member); 953 if (!member.isStatic) f(member);
953 }); 954 });
954 } else { 955 } else {
955 interfaceMembers.forEach((_, member) => f(member)); 956 interfaceMembers.forEach((_, member) => f(member));
956 } 957 }
957 } 958 }
958 } 959 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698