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

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

Issue 1859343004: dartfmt pkg/compiler (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « pkg/compiler/lib/src/universe/use.dart ('k') | pkg/compiler/lib/src/use_unused_api.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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.universe.world_impact; 5 library dart2js.universe.world_impact;
6 6
7 import '../elements/elements.dart' show 7 import '../elements/elements.dart'
8 Element, 8 show Element, LocalFunctionElement, MethodElement;
9 LocalFunctionElement, 9 import '../util/util.dart' show Setlet;
10 MethodElement;
11 import '../util/util.dart' show
12 Setlet;
13 10
14 import 'use.dart' show 11 import 'use.dart' show DynamicUse, StaticUse, TypeUse;
15 DynamicUse,
16 StaticUse,
17 TypeUse;
18 12
19 class WorldImpact { 13 class WorldImpact {
20 const WorldImpact(); 14 const WorldImpact();
21 15
22 Iterable<DynamicUse> get dynamicUses => 16 Iterable<DynamicUse> get dynamicUses => const <DynamicUse>[];
23 const <DynamicUse>[];
24 17
25 Iterable<StaticUse> get staticUses => const <StaticUse>[]; 18 Iterable<StaticUse> get staticUses => const <StaticUse>[];
26 19
27 // TODO(johnniwinther): Replace this by called constructors with type 20 // TODO(johnniwinther): Replace this by called constructors with type
28 // arguments. 21 // arguments.
29 // TODO(johnniwinther): Collect all checked types for checked mode separately 22 // TODO(johnniwinther): Collect all checked types for checked mode separately
30 // to support serialization. 23 // to support serialization.
31 24
32 Iterable<TypeUse> get typeUses => const <TypeUse>[]; 25 Iterable<TypeUse> get typeUses => const <TypeUse>[];
33 26
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 61
69 void registerDynamicUse(DynamicUse dynamicUse) { 62 void registerDynamicUse(DynamicUse dynamicUse) {
70 assert(dynamicUse != null); 63 assert(dynamicUse != null);
71 if (_dynamicUses == null) { 64 if (_dynamicUses == null) {
72 _dynamicUses = new Setlet<DynamicUse>(); 65 _dynamicUses = new Setlet<DynamicUse>();
73 } 66 }
74 _dynamicUses.add(dynamicUse); 67 _dynamicUses.add(dynamicUse);
75 } 68 }
76 69
77 Iterable<DynamicUse> get dynamicUses { 70 Iterable<DynamicUse> get dynamicUses {
78 return _dynamicUses != null 71 return _dynamicUses != null ? _dynamicUses : const <DynamicUse>[];
79 ? _dynamicUses : const <DynamicUse>[];
80 } 72 }
81 73
82 void registerTypeUse(TypeUse typeUse) { 74 void registerTypeUse(TypeUse typeUse) {
83 assert(typeUse != null); 75 assert(typeUse != null);
84 if (_typeUses == null) { 76 if (_typeUses == null) {
85 _typeUses = new Setlet<TypeUse>(); 77 _typeUses = new Setlet<TypeUse>();
86 } 78 }
87 _typeUses.add(typeUse); 79 _typeUses.add(typeUse);
88 } 80 }
89 81
90 Iterable<TypeUse> get typeUses { 82 Iterable<TypeUse> get typeUses {
91 return _typeUses != null 83 return _typeUses != null ? _typeUses : const <TypeUse>[];
92 ? _typeUses : const <TypeUse>[];
93 } 84 }
94 85
95 void registerStaticUse(StaticUse staticUse) { 86 void registerStaticUse(StaticUse staticUse) {
96 assert(staticUse != null); 87 assert(staticUse != null);
97 if (_staticUses == null) { 88 if (_staticUses == null) {
98 _staticUses = new Setlet<StaticUse>(); 89 _staticUses = new Setlet<StaticUse>();
99 } 90 }
100 _staticUses.add(staticUse); 91 _staticUses.add(staticUse);
101 } 92 }
102 93
103 Iterable<StaticUse> get staticUses { 94 Iterable<StaticUse> get staticUses {
104 return _staticUses != null ? _staticUses : const <StaticUse>[]; 95 return _staticUses != null ? _staticUses : const <StaticUse>[];
105 } 96 }
106 } 97 }
107 98
108 /// Mutable implementation of [WorldImpact] used to transform 99 /// Mutable implementation of [WorldImpact] used to transform
109 /// [ResolutionImpact] or [CodegenImpact] to [WorldImpact]. 100 /// [ResolutionImpact] or [CodegenImpact] to [WorldImpact].
110 class TransformedWorldImpact implements WorldImpact { 101 class TransformedWorldImpact implements WorldImpact {
111 final WorldImpact worldImpact; 102 final WorldImpact worldImpact;
112 103
113 Setlet<StaticUse> _staticUses; 104 Setlet<StaticUse> _staticUses;
114 Setlet<TypeUse> _typeUses; 105 Setlet<TypeUse> _typeUses;
115 Setlet<DynamicUse> _dynamicUses; 106 Setlet<DynamicUse> _dynamicUses;
116 107
117 TransformedWorldImpact(this.worldImpact); 108 TransformedWorldImpact(this.worldImpact);
118 109
119 @override 110 @override
120 Iterable<DynamicUse> get dynamicUses { 111 Iterable<DynamicUse> get dynamicUses {
121 return _dynamicUses != null 112 return _dynamicUses != null ? _dynamicUses : worldImpact.dynamicUses;
122 ? _dynamicUses : worldImpact.dynamicUses;
123 } 113 }
124 114
125 void registerDynamicUse(DynamicUse dynamicUse) { 115 void registerDynamicUse(DynamicUse dynamicUse) {
126 if (_dynamicUses == null) { 116 if (_dynamicUses == null) {
127 _dynamicUses = new Setlet<DynamicUse>(); 117 _dynamicUses = new Setlet<DynamicUse>();
128 _dynamicUses.addAll(worldImpact.dynamicUses); 118 _dynamicUses.addAll(worldImpact.dynamicUses);
129 } 119 }
130 _dynamicUses.add(dynamicUse); 120 _dynamicUses.add(dynamicUse);
131 } 121 }
132 122
133 void registerTypeUse(TypeUse typeUse) { 123 void registerTypeUse(TypeUse typeUse) {
134 if (_typeUses == null) { 124 if (_typeUses == null) {
135 _typeUses = new Setlet<TypeUse>(); 125 _typeUses = new Setlet<TypeUse>();
136 _typeUses.addAll(worldImpact.typeUses); 126 _typeUses.addAll(worldImpact.typeUses);
137 } 127 }
138 _typeUses.add(typeUse); 128 _typeUses.add(typeUse);
139 } 129 }
140 130
141 @override 131 @override
142 Iterable<TypeUse> get typeUses { 132 Iterable<TypeUse> get typeUses {
143 return _typeUses != null 133 return _typeUses != null ? _typeUses : worldImpact.typeUses;
144 ? _typeUses : worldImpact.typeUses;
145 } 134 }
146 135
147 void registerStaticUse(StaticUse staticUse) { 136 void registerStaticUse(StaticUse staticUse) {
148 if (_staticUses == null) { 137 if (_staticUses == null) {
149 _staticUses = new Setlet<StaticUse>(); 138 _staticUses = new Setlet<StaticUse>();
150 _staticUses.addAll(worldImpact.staticUses); 139 _staticUses.addAll(worldImpact.staticUses);
151 } 140 }
152 _staticUses.add(staticUse); 141 _staticUses.add(staticUse);
153 } 142 }
154 143
(...skipping 23 matching lines...) Expand all
178 const ImpactUseCase(this.name); 167 const ImpactUseCase(this.name);
179 168
180 String toString() => 'ImpactUseCase($name)'; 169 String toString() => 'ImpactUseCase($name)';
181 } 170 }
182 171
183 /// Strategy used for processing [WorldImpact] object in various use cases. 172 /// Strategy used for processing [WorldImpact] object in various use cases.
184 class ImpactStrategy { 173 class ImpactStrategy {
185 const ImpactStrategy(); 174 const ImpactStrategy();
186 175
187 /// Applies [impact] to [visitor] for the [impactUseCase] of [element]. 176 /// Applies [impact] to [visitor] for the [impactUseCase] of [element].
188 void visitImpact(Element element, 177 void visitImpact(Element element, WorldImpact impact,
189 WorldImpact impact, 178 WorldImpactVisitor visitor, ImpactUseCase impactUseCase) {
190 WorldImpactVisitor visitor,
191 ImpactUseCase impactUseCase) {
192 // Apply unconditionally. 179 // Apply unconditionally.
193 impact.apply(visitor); 180 impact.apply(visitor);
194 } 181 }
195 182
196 /// Notifies the strategy that no more impacts of [impactUseCase] will be 183 /// Notifies the strategy that no more impacts of [impactUseCase] will be
197 /// applied. 184 /// applied.
198 void onImpactUsed(ImpactUseCase impactUseCase) { 185 void onImpactUsed(ImpactUseCase impactUseCase) {
199 // Do nothing. 186 // Do nothing.
200 } 187 }
201 } 188 }
202 189
203 /// Visitor used to process the uses of a [WorldImpact]. 190 /// Visitor used to process the uses of a [WorldImpact].
204 abstract class WorldImpactVisitor { 191 abstract class WorldImpactVisitor {
205 void visitStaticUse(StaticUse staticUse); 192 void visitStaticUse(StaticUse staticUse);
206 void visitDynamicUse(DynamicUse dynamicUse); 193 void visitDynamicUse(DynamicUse dynamicUse);
207 void visitTypeUse(TypeUse typeUse); 194 void visitTypeUse(TypeUse typeUse);
208 } 195 }
209 196
210 // TODO(johnniwinther): Remove these when we get anonymous local classes. 197 // TODO(johnniwinther): Remove these when we get anonymous local classes.
211 typedef void VisitUse<U>(U use); 198 typedef void VisitUse<U>(U use);
212 199
213 class WorldImpactVisitorImpl implements WorldImpactVisitor { 200 class WorldImpactVisitorImpl implements WorldImpactVisitor {
214 final VisitUse<StaticUse> _visitStaticUse; 201 final VisitUse<StaticUse> _visitStaticUse;
215 final VisitUse<DynamicUse> _visitDynamicUse; 202 final VisitUse<DynamicUse> _visitDynamicUse;
216 final VisitUse<TypeUse> _visitTypeUse; 203 final VisitUse<TypeUse> _visitTypeUse;
217 204
218 WorldImpactVisitorImpl( 205 WorldImpactVisitorImpl(
219 {VisitUse<StaticUse> visitStaticUse, 206 {VisitUse<StaticUse> visitStaticUse,
220 VisitUse<DynamicUse> visitDynamicUse, 207 VisitUse<DynamicUse> visitDynamicUse,
221 VisitUse<TypeUse> visitTypeUse}) 208 VisitUse<TypeUse> visitTypeUse})
222 : _visitStaticUse = visitStaticUse, 209 : _visitStaticUse = visitStaticUse,
223 _visitDynamicUse = visitDynamicUse, 210 _visitDynamicUse = visitDynamicUse,
224 _visitTypeUse = visitTypeUse; 211 _visitTypeUse = visitTypeUse;
225 212
226 @override 213 @override
227 void visitStaticUse(StaticUse use) { 214 void visitStaticUse(StaticUse use) {
228 if (_visitStaticUse != null) { 215 if (_visitStaticUse != null) {
229 _visitStaticUse(use); 216 _visitStaticUse(use);
230 } 217 }
231 } 218 }
232 219
233 @override 220 @override
234 void visitDynamicUse(DynamicUse use) { 221 void visitDynamicUse(DynamicUse use) {
235 if (_visitDynamicUse != null) { 222 if (_visitDynamicUse != null) {
236 _visitDynamicUse(use); 223 _visitDynamicUse(use);
237 } 224 }
238 } 225 }
239 226
240 @override 227 @override
241 void visitTypeUse(TypeUse use) { 228 void visitTypeUse(TypeUse use) {
242 if (_visitTypeUse != null) { 229 if (_visitTypeUse != null) {
243 _visitTypeUse(use); 230 _visitTypeUse(use);
244 } 231 }
245 } 232 }
246 } 233 }
247
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/universe/use.dart ('k') | pkg/compiler/lib/src/use_unused_api.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698