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

Side by Side Diff: pkg/analyzer/lib/src/generated/engine.dart

Issue 1181603004: Add AnalysisContext.onResultComputed(). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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
« no previous file with comments | « pkg/analyzer/lib/src/context/context.dart ('k') | pkg/analyzer/lib/src/task/dart.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine; 8 library engine;
9 9
10 import 'dart:async'; 10 import 'dart:async';
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 * reference 'dart:html', either directly or indirectly). 735 * reference 'dart:html', either directly or indirectly).
736 * 736 *
737 * <b>Note:</b> In addition to the expected case of returning `false` if the 737 * <b>Note:</b> In addition to the expected case of returning `false` if the
738 * source is known to be a library that cannot be run on the server, this 738 * source is known to be a library that cannot be run on the server, this
739 * method will also return `false` if the source is not known to be a library 739 * method will also return `false` if the source is not known to be a library
740 * or if we do not know whether it can be run on the server. 740 * or if we do not know whether it can be run on the server.
741 */ 741 */
742 bool isServerLibrary(Source librarySource); 742 bool isServerLibrary(Source librarySource);
743 743
744 /** 744 /**
745 * Return the stream that is notified when a new value for the given
746 * [descriptor] is computed.
747 */
748 Stream<ResultComputedEvent> onResultComputed(ResultDescriptor descriptor);
749
750 /**
745 * Parse the content of the given [source] to produce an AST structure. The 751 * Parse the content of the given [source] to produce an AST structure. The
746 * resulting AST structure may or may not be resolved, and may have a slightly 752 * resulting AST structure may or may not be resolved, and may have a slightly
747 * different structure depending upon whether it is resolved. 753 * different structure depending upon whether it is resolved.
748 * 754 *
749 * Throws an [AnalysisException] if the analysis could not be performed 755 * Throws an [AnalysisException] if the analysis could not be performed
750 * 756 *
751 * <b>Note:</b> This method cannot be used in an async environment. 757 * <b>Note:</b> This method cannot be used in an async environment.
752 */ 758 */
753 CompilationUnit parseCompilationUnit(Source source); 759 CompilationUnit parseCompilationUnit(Source source);
754 760
755 /** 761 /**
756 * Parse a single HTML [source] to produce an AST structure. The resulting 762 * Parse a single HTML [source] to produce an AST structure. The resulting
757 * HTML AST structure may or may not be resolved, and may have a slightly 763 * HTML AST structure may or may not be resolved, and may have a slightly
758 * different structure depending upon whether it is resolved. 764 * different structure depending upon whether it is resolved.
759 * 765 *
760 * Throws an [AnalysisException] if the analysis could not be performed 766 * Throws an [AnalysisException] if the analysis could not be performed
761 * 767 *
762 * <b>Note:</b> This method cannot be used in an async environment. 768 * <b>Note:</b> This method cannot be used in an async environment.
763 */ 769 */
764 ht.HtmlUnit parseHtmlUnit(Source source); 770 ht.HtmlUnit parseHtmlUnit(Source source);
765 771
766 /** 772 /**
767 * Perform the next unit of work required to keep the analysis results 773 * Perform the next unit of work required to keep the analysis results
768 * up-to-date and return information about the consequent changes to the 774 * up-to-date and return information about the consequent changes to the
769 * analysis results. This method can be long running. 775 * analysis results. This method can be long running.
776 *
777 * The implementation that uses the task model notifies subscribers of
778 * [onResultComputed] about computed results.
779 *
780 * The following results are computed for Dart sources.
781 *
782 * 1. For explicit and implicit sources:
783 * [PARSED_UNIT]
784 * [RESOLVED_UNIT_NO_CONSTANTS].
785 *
786 * 2. For explicit sources:
787 * [RESOLVED_UNIT]
788 * [DART_ERRORS].
789 *
790 * 3. For explicit and implicit library sources:
791 * [LIBRARY_ELEMENT].
770 */ 792 */
771 AnalysisResult performAnalysisTask(); 793 AnalysisResult performAnalysisTask();
772 794
773 /** 795 /**
774 * Remove the given [listener] from the list of objects that are to be 796 * Remove the given [listener] from the list of objects that are to be
775 * notified when various analysis results are produced in this context. 797 * notified when various analysis results are produced in this context.
776 */ 798 */
777 void removeListener(AnalysisListener listener); 799 void removeListener(AnalysisListener listener);
778 800
779 /** 801 /**
(...skipping 1420 matching lines...) Expand 10 before | Expand all | Expand 10 after
2200 SourceEntry sourceEntry = _getReadableSourceEntry(librarySource); 2222 SourceEntry sourceEntry = _getReadableSourceEntry(librarySource);
2201 if (sourceEntry is DartEntry) { 2223 if (sourceEntry is DartEntry) {
2202 DartEntry dartEntry = sourceEntry; 2224 DartEntry dartEntry = sourceEntry;
2203 return !dartEntry.getValue(DartEntry.IS_CLIENT) && 2225 return !dartEntry.getValue(DartEntry.IS_CLIENT) &&
2204 dartEntry.getValue(DartEntry.IS_LAUNCHABLE); 2226 dartEntry.getValue(DartEntry.IS_LAUNCHABLE);
2205 } 2227 }
2206 return false; 2228 return false;
2207 } 2229 }
2208 2230
2209 @override 2231 @override
2232 Stream<ResultComputedEvent> onResultComputed(ResultDescriptor descriptor) {
2233 throw new NotImplementedException('In not task-based AnalysisContext.');
2234 }
2235
2236 @override
2210 CompilationUnit parseCompilationUnit(Source source) => 2237 CompilationUnit parseCompilationUnit(Source source) =>
2211 _getDartParseData2(source, DartEntry.PARSED_UNIT, null); 2238 _getDartParseData2(source, DartEntry.PARSED_UNIT, null);
2212 2239
2213 @override 2240 @override
2214 ht.HtmlUnit parseHtmlUnit(Source source) => 2241 ht.HtmlUnit parseHtmlUnit(Source source) =>
2215 _getHtmlParseData(source, HtmlEntry.PARSED_UNIT, null); 2242 _getHtmlParseData(source, HtmlEntry.PARSED_UNIT, null);
2216 2243
2217 @override 2244 @override
2218 AnalysisResult performAnalysisTask() { 2245 AnalysisResult performAnalysisTask() {
2219 if (_TRACE_PERFORM_TASK) { 2246 if (_TRACE_PERFORM_TASK) {
(...skipping 8529 matching lines...) Expand 10 before | Expand all | Expand 10 after
10749 // 10776 //
10750 _resolutionErrors = errorListener.getErrorsForSource(source); 10777 _resolutionErrors = errorListener.getErrorsForSource(source);
10751 // 10778 //
10752 // Remember the resolved unit. 10779 // Remember the resolved unit.
10753 // 10780 //
10754 _resolvedUnit = _unit; 10781 _resolvedUnit = _unit;
10755 } 10782 }
10756 } 10783 }
10757 10784
10758 /** 10785 /**
10786 * [ResultComputedEvent] describes a value computed for a [ResultDescriptor].
10787 */
10788 class ResultComputedEvent<V> {
Brian Wilkerson 2015/06/11 16:44:44 Perhaps "ComputedResult"?
scheglov 2015/06/11 17:43:25 Done.
10789 /**
10790 * The context in which the value was computed.
10791 */
10792 final AnalysisContext context;
10793
10794 /**
10795 * The descriptor of the result which was computed.
10796 */
10797 final ResultDescriptor<V> descriptor;
10798
10799 /**
10800 * The target for which the result was computed.
10801 */
10802 final AnalysisTarget target;
10803
10804 /**
10805 * The computed value.
10806 */
10807 final V value;
10808
10809 ResultComputedEvent(this.context, this.descriptor, this.target, this.value);
10810
10811 @override
10812 String toString() => '$descriptor of $target in $context';
10813 }
10814
10815 /**
10759 * The priority of data in the cache in terms of the desirability of retaining 10816 * The priority of data in the cache in terms of the desirability of retaining
10760 * some specified data about a specified source. 10817 * some specified data about a specified source.
10761 */ 10818 */
10762 class RetentionPriority extends Enum<RetentionPriority> { 10819 class RetentionPriority extends Enum<RetentionPriority> {
10763 /** 10820 /**
10764 * A priority indicating that a given piece of data can be removed from the 10821 * A priority indicating that a given piece of data can be removed from the
10765 * cache without reservation. 10822 * cache without reservation.
10766 */ 10823 */
10767 static const RetentionPriority LOW = const RetentionPriority('LOW', 0); 10824 static const RetentionPriority LOW = const RetentionPriority('LOW', 0);
10768 10825
(...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after
11713 PendingFuture pendingFuture = 11770 PendingFuture pendingFuture =
11714 new PendingFuture<T>(_context, source, computeValue); 11771 new PendingFuture<T>(_context, source, computeValue);
11715 if (!pendingFuture.evaluate(sourceEntry)) { 11772 if (!pendingFuture.evaluate(sourceEntry)) {
11716 _context._pendingFutureSources 11773 _context._pendingFutureSources
11717 .putIfAbsent(source, () => <PendingFuture>[]) 11774 .putIfAbsent(source, () => <PendingFuture>[])
11718 .add(pendingFuture); 11775 .add(pendingFuture);
11719 } 11776 }
11720 return pendingFuture.future; 11777 return pendingFuture.future;
11721 } 11778 }
11722 } 11779 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/context/context.dart ('k') | pkg/analyzer/lib/src/task/dart.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698