OLD | NEW |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |