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

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

Issue 2000663002: Handle resolvedAst for forwarding constructors and callType on unnamed mixin applications. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix test. Created 4 years, 7 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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.common.resolution; 5 library dart2js.common.resolution;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../compiler.dart' show Compiler; 8 import '../compiler.dart' show Compiler;
9 import '../constants/expressions.dart' show ConstantExpression; 9 import '../constants/expressions.dart' show ConstantExpression;
10 import '../core_types.dart' show CoreTypes; 10 import '../core_types.dart' show CoreClasses, CoreTypes;
11 import '../dart_types.dart' show DartType, InterfaceType; 11 import '../dart_types.dart' show DartType, InterfaceType, Types;
12 import '../elements/elements.dart' 12 import '../elements/elements.dart'
13 show 13 show
14 AstElement, 14 AstElement,
15 ClassElement, 15 ClassElement,
16 Element, 16 Element,
17 ExecutableElement, 17 ExecutableElement,
18 FunctionElement, 18 FunctionElement,
19 FunctionSignature, 19 FunctionSignature,
20 LibraryElement,
20 MetadataAnnotation, 21 MetadataAnnotation,
21 ResolvedAst, 22 ResolvedAst,
22 TypedefElement; 23 TypedefElement;
23 import '../enqueue.dart' show ResolutionEnqueuer; 24 import '../enqueue.dart' show ResolutionEnqueuer;
24 import '../options.dart' show ParserOptions; 25 import '../options.dart' show ParserOptions;
25 import '../parser/element_listener.dart' show ScannerOptions; 26 import '../parser/element_listener.dart' show ScannerOptions;
26 import '../parser/parser_task.dart'; 27 import '../parser/parser_task.dart';
27 import '../patch_parser.dart'; 28 import '../patch_parser.dart';
28 import '../tree/tree.dart' show TypeAnnotation; 29 import '../tree/tree.dart' show TypeAnnotation;
29 import '../universe/world_impact.dart' show WorldImpact; 30 import '../universe/world_impact.dart' show WorldImpact;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 } 189 }
189 } 190 }
190 191
191 /// Interface for the accessing the front-end analysis. 192 /// Interface for the accessing the front-end analysis.
192 // TODO(johnniwinther): Find a better name for this. 193 // TODO(johnniwinther): Find a better name for this.
193 abstract class Frontend { 194 abstract class Frontend {
194 /// Returns the [ResolutionImpact] for [element]. 195 /// Returns the [ResolutionImpact] for [element].
195 ResolutionImpact getResolutionImpact(Element element); 196 ResolutionImpact getResolutionImpact(Element element);
196 } 197 }
197 198
199 /// Interface defining target-specific behavior for resolution.
200 abstract class Target {
201 /// Returns `true` if [library] is a target specific library whose members
202 /// have special treatment, such as being allowed to extends blacklisted
203 /// classes or members being eagerly resolved.
204 bool isTargetSpecificLibrary(LibraryElement element);
205 }
206
198 // TODO(johnniwinther): Rename to `Resolver` or `ResolverContext`. 207 // TODO(johnniwinther): Rename to `Resolver` or `ResolverContext`.
199 abstract class Resolution implements Frontend { 208 abstract class Resolution implements Frontend {
200 ParsingContext get parsingContext; 209 ParsingContext get parsingContext;
201 DiagnosticReporter get reporter; 210 DiagnosticReporter get reporter;
211 CoreClasses get coreClasses;
202 CoreTypes get coreTypes; 212 CoreTypes get coreTypes;
213 Types get types;
214 Target get target;
203 215
204 /// If set to `true` resolution caches will not be cleared. Use this only for 216 /// If set to `true` resolution caches will not be cleared. Use this only for
205 /// testing. 217 /// testing.
206 bool retainCachesForTesting; 218 bool retainCachesForTesting;
207 219
208 void resolveTypedef(TypedefElement typdef); 220 void resolveTypedef(TypedefElement typdef);
209 void resolveClass(ClassElement cls); 221 void resolveClass(ClassElement cls);
210 void registerClass(ClassElement cls); 222 void registerClass(ClassElement cls);
211 void resolveMetadataAnnotation(MetadataAnnotation metadataAnnotation); 223 void resolveMetadataAnnotation(MetadataAnnotation metadataAnnotation);
212 FunctionSignature resolveSignature(FunctionElement function); 224 FunctionSignature resolveSignature(FunctionElement function);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 if (cls.isPatch) { 314 if (cls.isPatch) {
303 patchParser.parsePatchClassNode(cls); 315 patchParser.parsePatchClassNode(cls);
304 } 316 }
305 }); 317 });
306 } 318 }
307 319
308 @override 320 @override
309 ScannerOptions getScannerOptionsFor(Element element) => new ScannerOptions( 321 ScannerOptions getScannerOptionsFor(Element element) => new ScannerOptions(
310 canUseNative: backend.canLibraryUseNative(element.library)); 322 canUseNative: backend.canLibraryUseNative(element.library));
311 } 323 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/common/backend_api.dart ('k') | pkg/compiler/lib/src/compile_time_constants.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698