OLD | NEW |
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 Element; | 7 import '../elements/elements.dart' show Element; |
8 import '../util/util.dart' show Setlet; | 8 import '../util/util.dart' show Setlet; |
9 import 'use.dart' show DynamicUse, StaticUse, TypeUse; | 9 import 'use.dart' show DynamicUse, StaticUse, TypeUse; |
10 | 10 |
11 /// Describes how an element (e.g. a method) impacts the closed-world | 11 /// Describes how an element (e.g. a method) impacts the closed-world |
12 /// semantics of a program. | 12 /// semantics of a program. |
13 /// | 13 /// |
14 /// A [WorldImpact] contains information about how a program element affects our | 14 /// A [WorldImpact] contains information about how a program element affects our |
15 /// understanding of what's live in a program. For example, it can indicate | 15 /// understanding of what's live in a program. For example, it can indicate |
16 /// that a method uses a certain feature, or allocates a specific type. | 16 /// that a method uses a certain feature, or allocates a specific type. |
17 /// | 17 /// |
18 /// The impact object can be computed locally by inspecting just the resolution | 18 /// The impact object can be computed locally by inspecting just the resolution |
19 /// information of that element alone. The compiler uses [Universe] and | 19 /// information of that element alone. The compiler uses [Universe] and |
20 /// [ClassWorld] to combine the information discovered in the impact objects of | 20 /// [World] to combine the information discovered in the impact objects of |
21 /// all elements reachable in an application. | 21 /// all elements reachable in an application. |
22 class WorldImpact { | 22 class WorldImpact { |
23 const WorldImpact(); | 23 const WorldImpact(); |
24 | 24 |
25 Iterable<DynamicUse> get dynamicUses => const <DynamicUse>[]; | 25 Iterable<DynamicUse> get dynamicUses => const <DynamicUse>[]; |
26 | 26 |
27 Iterable<StaticUse> get staticUses => const <StaticUse>[]; | 27 Iterable<StaticUse> get staticUses => const <StaticUse>[]; |
28 | 28 |
29 // TODO(johnniwinther): Replace this by called constructors with type | 29 // TODO(johnniwinther): Replace this by called constructors with type |
30 // arguments. | 30 // arguments. |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 } | 290 } |
291 } | 291 } |
292 | 292 |
293 @override | 293 @override |
294 void visitTypeUse(TypeUse use) { | 294 void visitTypeUse(TypeUse use) { |
295 if (_visitTypeUse != null) { | 295 if (_visitTypeUse != null) { |
296 _visitTypeUse(use); | 296 _visitTypeUse(use); |
297 } | 297 } |
298 } | 298 } |
299 } | 299 } |
OLD | NEW |