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

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

Issue 1901683002: Support deserialization of ResolutionImpact for members of unnamed mixin applications (Closed) Base URL: https://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/compiler.dart ('k') | pkg/compiler/lib/src/serialization/equivalence.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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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.registry; 5 library dart2js.resolution.registry;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/backend_api.dart' show Backend, ForeignResolver; 8 import '../common/backend_api.dart' show Backend, ForeignResolver;
9 import '../common/resolution.dart' 9 import '../common/resolution.dart'
10 show Feature, ListLiteralUse, MapLiteralUse, ResolutionImpact; 10 show Feature, ListLiteralUse, MapLiteralUse, ResolutionImpact;
11 import '../common/registry.dart' show Registry; 11 import '../common/registry.dart' show Registry;
12 import '../compiler.dart' show Compiler; 12 import '../compiler.dart' show Compiler;
13 import '../constants/expressions.dart'; 13 import '../constants/expressions.dart';
14 import '../dart_types.dart'; 14 import '../dart_types.dart';
15 import '../diagnostics/source_span.dart'; 15 import '../diagnostics/source_span.dart';
16 import '../enqueue.dart' show ResolutionEnqueuer; 16 import '../enqueue.dart' show ResolutionEnqueuer;
17 import '../elements/elements.dart'; 17 import '../elements/elements.dart';
18 import '../tree/tree.dart'; 18 import '../tree/tree.dart';
19 import '../util/util.dart' show Setlet; 19 import '../util/util.dart' show Setlet;
20 import '../universe/call_structure.dart' show CallStructure; 20 import '../universe/call_structure.dart' show CallStructure;
21 import '../universe/selector.dart' show Selector; 21 import '../universe/selector.dart' show Selector;
22 import '../universe/use.dart' show DynamicUse, StaticUse, TypeUse; 22 import '../universe/use.dart' show DynamicUse, StaticUse, TypeUse;
23 import '../universe/world_impact.dart' show WorldImpactBuilder; 23 import '../universe/world_impact.dart' show WorldImpact, WorldImpactBuilder;
24 import '../util/enumset.dart' show EnumSet; 24 import '../util/enumset.dart' show EnumSet;
25 import '../world.dart' show World; 25 import '../world.dart' show World;
26 26
27 import 'send_structure.dart'; 27 import 'send_structure.dart';
28 28
29 import 'members.dart' show ResolverVisitor; 29 import 'members.dart' show ResolverVisitor;
30 import 'tree_elements.dart' show TreeElementMapping; 30 import 'tree_elements.dart' show TreeElementMapping;
31 31
32 class _ResolutionWorldImpact extends ResolutionImpact with WorldImpactBuilder { 32 class _ResolutionWorldImpact extends ResolutionImpact with WorldImpactBuilder {
33 final String name; 33 final String name;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 } 97 }
98 _constantLiterals.add(constant); 98 _constantLiterals.add(constant);
99 } 99 }
100 100
101 Iterable<ConstantExpression> get constantLiterals { 101 Iterable<ConstantExpression> get constantLiterals {
102 return _constantLiterals != null 102 return _constantLiterals != null
103 ? _constantLiterals 103 ? _constantLiterals
104 : const <ConstantExpression>[]; 104 : const <ConstantExpression>[];
105 } 105 }
106 106
107 String toString() => '_ResolutionWorldImpact($name)'; 107 String toString() {
108 StringBuffer sb = new StringBuffer();
109 sb.write('_ResolutionWorldImpact($name)');
110 WorldImpact.printOn(sb, this);
111 if (_features != null) {
112 sb.write('\n features:');
113 for (Feature feature in _features.iterable(Feature.values)) {
114 sb.write('\n $feature');
115 }
116 }
117 if (_mapLiterals != null) {
118 sb.write('\n map-literals:');
119 for (MapLiteralUse use in _mapLiterals) {
120 sb.write('\n $use');
121 }
122 }
123 if (_listLiterals != null) {
124 sb.write('\n list-literals:');
125 for (ListLiteralUse use in _listLiterals) {
126 sb.write('\n $use');
127 }
128 }
129 if (_constantLiterals != null) {
130 sb.write('\n const-literals:');
131 for (ConstantExpression constant in _constantLiterals) {
132 sb.write('\n ${constant.getText()}');
133 }
134 }
135 if (_constSymbolNames != null) {
136 sb.write('\n const-symbol-names: $_constSymbolNames');
137 }
138 return sb.toString();
139 }
108 } 140 }
109 141
110 /// [ResolutionRegistry] collects all resolution information. It stores node 142 /// [ResolutionRegistry] collects all resolution information. It stores node
111 /// related information in a [TreeElements] mapping and registers calls with 143 /// related information in a [TreeElements] mapping and registers calls with
112 /// [Backend], [World] and [Enqueuer]. 144 /// [Backend], [World] and [Enqueuer].
113 // TODO(johnniwinther): Split this into an interface and implementation class. 145 // TODO(johnniwinther): Split this into an interface and implementation class.
114 class ResolutionRegistry extends Registry { 146 class ResolutionRegistry extends Registry {
115 final Compiler compiler; 147 final Compiler compiler;
116 final TreeElementMapping mapping; 148 final TreeElementMapping mapping;
117 final _ResolutionWorldImpact worldImpact; 149 final _ResolutionWorldImpact worldImpact;
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 @override 422 @override
391 void registerInstantiatedType(InterfaceType type) { 423 void registerInstantiatedType(InterfaceType type) {
392 registry.registerInstantiation(type); 424 registry.registerInstantiation(type);
393 } 425 }
394 426
395 @override 427 @override
396 DartType resolveTypeFromString(Node node, String typeName) { 428 DartType resolveTypeFromString(Node node, String typeName) {
397 return visitor.resolveTypeFromString(node, typeName); 429 return visitor.resolveTypeFromString(node, typeName);
398 } 430 }
399 } 431 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/compiler.dart ('k') | pkg/compiler/lib/src/serialization/equivalence.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698