| 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 analyzer.src.task.dart; | 5 library analyzer.src.task.dart; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:analyzer/src/context/cache.dart'; | 9 import 'package:analyzer/src/context/cache.dart'; |
| 10 import 'package:analyzer/src/generated/ast.dart'; | 10 import 'package:analyzer/src/generated/ast.dart'; |
| (...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 void internalPerform() { | 530 void internalPerform() { |
| 531 // | 531 // |
| 532 // Prepare inputs. | 532 // Prepare inputs. |
| 533 // | 533 // |
| 534 LibrarySpecificUnit librarySpecificUnit = target; | 534 LibrarySpecificUnit librarySpecificUnit = target; |
| 535 Source source = getRequiredSource(); | 535 Source source = getRequiredSource(); |
| 536 CompilationUnit unit = getRequiredInput(PARSED_UNIT_INPUT_NAME); | 536 CompilationUnit unit = getRequiredInput(PARSED_UNIT_INPUT_NAME); |
| 537 // | 537 // |
| 538 // Build or reuse CompilationUnitElement. | 538 // Build or reuse CompilationUnitElement. |
| 539 // | 539 // |
| 540 unit = AstCloner.clone(unit); | 540 // unit = AstCloner.clone(unit); |
| 541 AnalysisCache analysisCache = | 541 AnalysisCache analysisCache = |
| 542 (context as InternalAnalysisContext).analysisCache; | 542 (context as InternalAnalysisContext).analysisCache; |
| 543 CompilationUnitElement element = | 543 CompilationUnitElement element = |
| 544 analysisCache.getValue(target, COMPILATION_UNIT_ELEMENT); | 544 analysisCache.getValue(target, COMPILATION_UNIT_ELEMENT); |
| 545 if (element == null) { | 545 if (element == null) { |
| 546 CompilationUnitBuilder builder = new CompilationUnitBuilder(); | 546 CompilationUnitBuilder builder = new CompilationUnitBuilder(); |
| 547 element = builder.buildCompilationUnit( | 547 element = builder.buildCompilationUnit( |
| 548 source, unit, librarySpecificUnit.library); | 548 source, unit, librarySpecificUnit.library); |
| 549 } else { | 549 } else { |
| 550 new DeclarationResolver().resolve(unit, element); | 550 new DeclarationResolver().resolve(unit, element); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 566 } | 566 } |
| 567 | 567 |
| 568 /** | 568 /** |
| 569 * Return a map from the names of the inputs of this kind of task to the task | 569 * Return a map from the names of the inputs of this kind of task to the task |
| 570 * input descriptors describing those inputs for a task with the given | 570 * input descriptors describing those inputs for a task with the given |
| 571 * [target]. | 571 * [target]. |
| 572 */ | 572 */ |
| 573 static Map<String, TaskInput> buildInputs(AnalysisTarget target) { | 573 static Map<String, TaskInput> buildInputs(AnalysisTarget target) { |
| 574 LibrarySpecificUnit unit = target; | 574 LibrarySpecificUnit unit = target; |
| 575 return <String, TaskInput>{ | 575 return <String, TaskInput>{ |
| 576 PARSED_UNIT_INPUT_NAME: PARSED_UNIT.of(unit.unit) | 576 PARSED_UNIT_INPUT_NAME: PARSED_UNIT.of(unit.unit, flushOnAccess: true) |
| 577 }; | 577 }; |
| 578 } | 578 } |
| 579 | 579 |
| 580 /** | 580 /** |
| 581 * Create a [BuildCompilationUnitElementTask] based on the given [target] in | 581 * Create a [BuildCompilationUnitElementTask] based on the given [target] in |
| 582 * the given [context]. | 582 * the given [context]. |
| 583 */ | 583 */ |
| 584 static BuildCompilationUnitElementTask createTask( | 584 static BuildCompilationUnitElementTask createTask( |
| 585 AnalysisContext context, AnalysisTarget target) { | 585 AnalysisContext context, AnalysisTarget target) { |
| 586 return new BuildCompilationUnitElementTask(context, target); | 586 return new BuildCompilationUnitElementTask(context, target); |
| (...skipping 3517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4104 kind == _SourceClosureKind.IMPORT_EXPORT) { | 4104 kind == _SourceClosureKind.IMPORT_EXPORT) { |
| 4105 for (ExportElement exportElement in library.exports) { | 4105 for (ExportElement exportElement in library.exports) { |
| 4106 Source exportedSource = exportElement.exportedLibrary.source; | 4106 Source exportedSource = exportElement.exportedLibrary.source; |
| 4107 _newSources.add(exportedSource); | 4107 _newSources.add(exportedSource); |
| 4108 } | 4108 } |
| 4109 } | 4109 } |
| 4110 } | 4110 } |
| 4111 } | 4111 } |
| 4112 | 4112 |
| 4113 @override | 4113 @override |
| 4114 bool get flushOnAccess => false; |
| 4115 |
| 4116 @override |
| 4114 List<Source> get inputValue { | 4117 List<Source> get inputValue { |
| 4115 return _libraries.map((LibraryElement library) => library.source).toList(); | 4118 return _libraries.map((LibraryElement library) => library.source).toList(); |
| 4116 } | 4119 } |
| 4117 | 4120 |
| 4118 @override | 4121 @override |
| 4119 void currentValueNotAvailable() { | 4122 void currentValueNotAvailable() { |
| 4120 // Nothing needs to be done. moveNext() will simply go on to the next new | 4123 // Nothing needs to be done. moveNext() will simply go on to the next new |
| 4121 // source. | 4124 // source. |
| 4122 } | 4125 } |
| 4123 | 4126 |
| 4124 @override | 4127 @override |
| 4125 bool moveNext() { | 4128 bool moveNext() { |
| 4126 if (_newSources.isEmpty) { | 4129 if (_newSources.isEmpty) { |
| 4127 return false; | 4130 return false; |
| 4128 } | 4131 } |
| 4129 currentTarget = _newSources.removeLast(); | 4132 currentTarget = _newSources.removeLast(); |
| 4130 return true; | 4133 return true; |
| 4131 } | 4134 } |
| 4132 } | 4135 } |
| OLD | NEW |