| 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..0df224ce212c4494c4be74cbe2dd887d16333aa4 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<ComputedResult> 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,21 @@ 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]
|
| + *
|
| + * 2. For explicit sources:
|
| + * [DART_ERRORS].
|
| + *
|
| + * 3. For explicit and implicit library sources:
|
| + * [LIBRARY_ELEMENT].
|
| */
|
| AnalysisResult performAnalysisTask();
|
|
|
| @@ -2207,6 +2228,11 @@ class AnalysisContextImpl implements InternalAnalysisContext {
|
| }
|
|
|
| @override
|
| + Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor) {
|
| + throw new NotImplementedException('In not task-based AnalysisContext.');
|
| + }
|
| +
|
| + @override
|
| CompilationUnit parseCompilationUnit(Source source) =>
|
| _getDartParseData2(source, DartEntry.PARSED_UNIT, null);
|
|
|
| @@ -5729,7 +5755,7 @@ class AnalysisEngine {
|
| * A flag indicating whether the (new) task model should be used to perform
|
| * analysis.
|
| */
|
| - bool useTaskModel = false;
|
| + bool useTaskModel = true;
|
|
|
| /**
|
| * The task manager used to manage the tasks used to analyze code.
|
| @@ -7183,6 +7209,36 @@ class ChangeSet_ContentChange {
|
| }
|
|
|
| /**
|
| + * [ComputedResult] describes a value computed for a [ResultDescriptor].
|
| + */
|
| +class ComputedResult<V> {
|
| + /**
|
| + * 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;
|
| +
|
| + ComputedResult(this.context, this.descriptor, this.target, this.value);
|
| +
|
| + @override
|
| + String toString() => '$descriptor of $target in $context';
|
| +}
|
| +
|
| +/**
|
| * A pair containing a library and a list of the (source, entry) pairs for
|
| * compilation units in the library.
|
| */
|
|
|