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

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

Issue 2992863002: Support forEachClassMember on closure classes (Closed)
Patch Set: 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 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 AbstractUsage<T> { 7 abstract class AbstractUsage<T> {
8 final EnumSet<T> _pendingUse = new EnumSet<T>(); 8 final EnumSet<T> _pendingUse = new EnumSet<T>();
9 9
10 AbstractUsage() { 10 AbstractUsage() {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 if (member.isAssignable) { 42 if (member.isAssignable) {
43 return new _FieldUsage(member, isNative: isNative); 43 return new _FieldUsage(member, isNative: isNative);
44 } else { 44 } else {
45 return new _FinalFieldUsage(member, isNative: isNative); 45 return new _FinalFieldUsage(member, isNative: isNative);
46 } 46 }
47 } else if (member.isGetter) { 47 } else if (member.isGetter) {
48 return new _GetterUsage(member); 48 return new _GetterUsage(member);
49 } else if (member.isSetter) { 49 } else if (member.isSetter) {
50 return new _SetterUsage(member); 50 return new _SetterUsage(member);
51 } else { 51 } else {
52 assert(member.isFunction); 52 assert(member.isFunction, failedAt(member, "Unexpected member: $member"));
53 return new _FunctionUsage(member); 53 return new _FunctionUsage(member);
54 } 54 }
55 } 55 }
56 56
57 /// `true` if [entity] has been read as a value. For a field this is a normal 57 /// `true` if [entity] has been read as a value. For a field this is a normal
58 /// read access, for a function this is a closurization. 58 /// read access, for a function this is a closurization.
59 bool get hasRead => false; 59 bool get hasRead => false;
60 60
61 /// `true` if a value has been written to [entity]. 61 /// `true` if a value has been written to [entity].
62 bool get hasWrite => false; 62 bool get hasWrite => false;
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 if (hasClosurization) { 379 if (hasClosurization) {
380 return MemberUses.NONE; 380 return MemberUses.NONE;
381 } 381 }
382 hasNormalUse = hasClosurization = true; 382 hasNormalUse = hasClosurization = true;
383 return _pendingUse.removeAll(MemberUses.ALL_STATIC); 383 return _pendingUse.removeAll(MemberUses.ALL_STATIC);
384 } 384 }
385 385
386 @override 386 @override
387 EnumSet<MemberUse> get _originalUse => MemberUses.ALL_STATIC; 387 EnumSet<MemberUse> get _originalUse => MemberUses.ALL_STATIC;
388 } 388 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698