Chromium Code Reviews| Index: pkg/analyzer/lib/src/generated/engine.dart |
| diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart |
| index ac74c02f0c488c563dab90e90252e11e040da509..29d755d42bce7c14210f60e9e525295d3f5ac6c4 100644 |
| --- a/pkg/analyzer/lib/src/generated/engine.dart |
| +++ b/pkg/analyzer/lib/src/generated/engine.dart |
| @@ -742,6 +742,12 @@ abstract class AnalysisContext { |
| bool isServerLibrary(Source librarySource); |
| /** |
| + * Return the stream that is notified when a new value for the given |
| + * [descriptor] is computed. |
| + */ |
| + Stream<ResultComputedEvent> onResultComputed(ResultDescriptor descriptor); |
| + |
| + /** |
| * Parse the content of the given [source] to produce an AST structure. The |
| * resulting AST structure may or may not be resolved, and may have a slightly |
| * different structure depending upon whether it is resolved. |
| @@ -767,6 +773,22 @@ abstract class AnalysisContext { |
| * Perform the next unit of work required to keep the analysis results |
| * up-to-date and return information about the consequent changes to the |
| * analysis results. This method can be long running. |
| + * |
| + * The implementation that uses the task model notifies subscribers of |
| + * [onResultComputed] about computed results. |
| + * |
| + * The following results are computed for Dart sources. |
| + * |
| + * 1. For explicit and implicit sources: |
| + * [PARSED_UNIT] |
| + * [RESOLVED_UNIT_NO_CONSTANTS]. |
| + * |
| + * 2. For explicit sources: |
| + * [RESOLVED_UNIT] |
| + * [DART_ERRORS]. |
| + * |
| + * 3. For explicit and implicit library sources: |
| + * [LIBRARY_ELEMENT]. |
| */ |
| AnalysisResult performAnalysisTask(); |
| @@ -2207,6 +2229,11 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
| } |
| @override |
| + Stream<ResultComputedEvent> onResultComputed(ResultDescriptor descriptor) { |
| + throw new NotImplementedException('In not task-based AnalysisContext.'); |
| + } |
| + |
| + @override |
| CompilationUnit parseCompilationUnit(Source source) => |
| _getDartParseData2(source, DartEntry.PARSED_UNIT, null); |
| @@ -10756,6 +10783,36 @@ class ResolveHtmlTask extends AnalysisTask { |
| } |
| /** |
| + * [ResultComputedEvent] describes a value computed for a [ResultDescriptor]. |
| + */ |
| +class ResultComputedEvent<V> { |
|
Brian Wilkerson
2015/06/11 16:44:44
Perhaps "ComputedResult"?
scheglov
2015/06/11 17:43:25
Done.
|
| + /** |
| + * The context in which the value was computed. |
| + */ |
| + final AnalysisContext context; |
| + |
| + /** |
| + * The descriptor of the result which was computed. |
| + */ |
| + final ResultDescriptor<V> descriptor; |
| + |
| + /** |
| + * The target for which the result was computed. |
| + */ |
| + final AnalysisTarget target; |
| + |
| + /** |
| + * The computed value. |
| + */ |
| + final V value; |
| + |
| + ResultComputedEvent(this.context, this.descriptor, this.target, this.value); |
| + |
| + @override |
| + String toString() => '$descriptor of $target in $context'; |
| +} |
| + |
| +/** |
| * The priority of data in the cache in terms of the desirability of retaining |
| * some specified data about a specified source. |
| */ |