| OLD | NEW |
| 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 '../compile_time_constants.dart'; | 8 import '../compile_time_constants.dart'; |
| 9 import '../constants/expressions.dart' show ConstantExpression; | 9 import '../constants/expressions.dart' show ConstantExpression; |
| 10 import '../constants/values.dart' show ConstantValue; | 10 import '../constants/values.dart' show ConstantValue; |
| 11 import '../core_types.dart' show CommonElements; | 11 import '../core_types.dart' show CommonElements; |
| 12 import '../elements/resolution_types.dart' show ResolutionDartType, Types; | 12 import '../elements/resolution_types.dart' show ResolutionDartType, Types; |
| 13 import '../elements/elements.dart' | 13 import '../elements/elements.dart' |
| 14 show | 14 show |
| 15 AstElement, | 15 AstElement, |
| 16 ClassElement, | 16 ClassElement, |
| 17 Element, | 17 Element, |
| 18 ExecutableElement, | 18 ExecutableElement, |
| 19 FunctionElement, | 19 FunctionElement, |
| 20 FunctionSignature, | 20 FunctionSignature, |
| 21 LibraryElement, | 21 LibraryElement, |
| 22 MetadataAnnotation, | 22 MetadataAnnotation, |
| 23 MethodElement, | 23 MethodElement, |
| 24 ResolvedAst, | 24 ResolvedAst, |
| 25 TypedefElement; | 25 TypedefElement; |
| 26 import '../elements/entities.dart'; | 26 import '../elements/entities.dart'; |
| 27 import '../enqueue.dart' show ResolutionEnqueuer; | 27 import '../enqueue.dart' show ResolutionEnqueuer; |
| 28 import '../id_generator.dart'; | 28 import '../id_generator.dart'; |
| 29 import '../js_backend/backend.dart' show JavaScriptBackend; |
| 29 import '../mirrors_used.dart'; | 30 import '../mirrors_used.dart'; |
| 30 import '../options.dart' show CompilerOptions; | 31 import '../options.dart' show CompilerOptions; |
| 31 import '../parser/element_listener.dart' show ScannerOptions; | 32 import '../parser/element_listener.dart' show ScannerOptions; |
| 32 import '../parser/parser_task.dart'; | 33 import '../parser/parser_task.dart'; |
| 33 import '../scanner/scanner_task.dart'; | 34 import '../scanner/scanner_task.dart'; |
| 34 import '../patch_parser.dart'; | 35 import '../patch_parser.dart'; |
| 35 import '../resolution/resolution.dart'; | 36 import '../resolution/resolution.dart'; |
| 36 import '../tree/tree.dart' show Send, TypeAnnotation; | 37 import '../tree/tree.dart' show Send, TypeAnnotation; |
| 37 import '../universe/call_structure.dart' show CallStructure; | 38 import '../universe/call_structure.dart' show CallStructure; |
| 38 import '../universe/world_impact.dart' show WorldImpact; | 39 import '../universe/world_impact.dart' show WorldImpact; |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 bool isProxyConstant(ConstantValue value); | 212 bool isProxyConstant(ConstantValue value); |
| 212 } | 213 } |
| 213 | 214 |
| 214 /// A container of commonly used dependencies for tasks that involve parsing. | 215 /// A container of commonly used dependencies for tasks that involve parsing. |
| 215 abstract class ParsingContext { | 216 abstract class ParsingContext { |
| 216 factory ParsingContext( | 217 factory ParsingContext( |
| 217 DiagnosticReporter reporter, | 218 DiagnosticReporter reporter, |
| 218 ParserTask parser, | 219 ParserTask parser, |
| 219 ScannerTask scanner, | 220 ScannerTask scanner, |
| 220 PatchParserTask patchParser, | 221 PatchParserTask patchParser, |
| 221 Backend backend) = _ParsingContext; | 222 JavaScriptBackend backend) = _ParsingContext; |
| 222 | 223 |
| 223 DiagnosticReporter get reporter; | 224 DiagnosticReporter get reporter; |
| 224 ParserTask get parser; | 225 ParserTask get parser; |
| 225 ScannerTask get scanner; | 226 ScannerTask get scanner; |
| 226 PatchParserTask get patchParser; | 227 PatchParserTask get patchParser; |
| 227 | 228 |
| 228 /// Use [patchParser] directly instead. | 229 /// Use [patchParser] directly instead. |
| 229 @deprecated | 230 @deprecated |
| 230 void parsePatchClass(ClassElement cls); | 231 void parsePatchClass(ClassElement cls); |
| 231 | 232 |
| 232 /// Use [parser] and measure directly instead. | 233 /// Use [parser] and measure directly instead. |
| 233 @deprecated | 234 @deprecated |
| 234 measure(f()); | 235 measure(f()); |
| 235 | 236 |
| 236 /// Get the [ScannerOptions] to scan the given [element]. | 237 /// Get the [ScannerOptions] to scan the given [element]. |
| 237 ScannerOptions getScannerOptionsFor(Element element); | 238 ScannerOptions getScannerOptionsFor(Element element); |
| 238 } | 239 } |
| 239 | 240 |
| 240 class _ParsingContext implements ParsingContext { | 241 class _ParsingContext implements ParsingContext { |
| 241 final DiagnosticReporter reporter; | 242 final DiagnosticReporter reporter; |
| 242 final ParserTask parser; | 243 final ParserTask parser; |
| 243 final ScannerTask scanner; | 244 final ScannerTask scanner; |
| 244 final PatchParserTask patchParser; | 245 final PatchParserTask patchParser; |
| 245 final Backend backend; | 246 final JavaScriptBackend backend; |
| 246 | 247 |
| 247 _ParsingContext( | 248 _ParsingContext( |
| 248 this.reporter, this.parser, this.scanner, this.patchParser, this.backend); | 249 this.reporter, this.parser, this.scanner, this.patchParser, this.backend); |
| 249 | 250 |
| 250 @override | 251 @override |
| 251 measure(f()) => parser.measure(f); | 252 measure(f()) => parser.measure(f); |
| 252 | 253 |
| 253 @override | 254 @override |
| 254 void parsePatchClass(ClassElement cls) { | 255 void parsePatchClass(ClassElement cls) { |
| 255 patchParser.measure(() { | 256 patchParser.measure(() { |
| 256 if (cls.isPatch) { | 257 if (cls.isPatch) { |
| 257 patchParser.parsePatchClassNode(cls); | 258 patchParser.parsePatchClassNode(cls); |
| 258 } | 259 } |
| 259 }); | 260 }); |
| 260 } | 261 } |
| 261 | 262 |
| 262 @override | 263 @override |
| 263 ScannerOptions getScannerOptionsFor(Element element) => new ScannerOptions( | 264 ScannerOptions getScannerOptionsFor(Element element) => new ScannerOptions( |
| 264 canUseNative: backend.canLibraryUseNative(element.library)); | 265 canUseNative: backend.canLibraryUseNative(element.library)); |
| 265 } | 266 } |
| OLD | NEW |