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

Side by Side Diff: pkg/analyzer/lib/src/context/context.dart

Issue 1181603004: Add AnalysisContext.onResultComputed(). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Rename ResultComputedEvent -> ComputedResult. 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 | « no previous file | pkg/analyzer/lib/src/generated/engine.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) 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.context.context; 5 library analyzer.src.context.context;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 9
10 import 'package:analyzer/instrumentation/instrumentation.dart'; 10 import 'package:analyzer/instrumentation/instrumentation.dart';
(...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 return entry.getValue(IS_CLIENT) && entry.getValue(IS_LAUNCHABLE); 1008 return entry.getValue(IS_CLIENT) && entry.getValue(IS_LAUNCHABLE);
1009 } 1009 }
1010 1010
1011 @override 1011 @override
1012 bool isServerLibrary(Source librarySource) { 1012 bool isServerLibrary(Source librarySource) {
1013 CacheEntry entry = _cache.get(librarySource); 1013 CacheEntry entry = _cache.get(librarySource);
1014 return !entry.getValue(IS_CLIENT) && entry.getValue(IS_LAUNCHABLE); 1014 return !entry.getValue(IS_CLIENT) && entry.getValue(IS_LAUNCHABLE);
1015 } 1015 }
1016 1016
1017 @override 1017 @override
1018 Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor) {
1019 return driver.onResultComputed(descriptor);
1020 }
1021
1022 @override
1018 CompilationUnit parseCompilationUnit(Source source) { 1023 CompilationUnit parseCompilationUnit(Source source) {
1019 if (!AnalysisEngine.isDartFileName(source.shortName)) { 1024 if (!AnalysisEngine.isDartFileName(source.shortName)) {
1020 return null; 1025 return null;
1021 } 1026 }
1022 try { 1027 try {
1023 getContents(source); 1028 getContents(source);
1024 } catch (exception, stackTrace) { 1029 } catch (exception, stackTrace) {
1025 throw new AnalysisException('Could not get contents of $source', 1030 throw new AnalysisException('Could not get contents of $source',
1026 new CaughtException(exception, stackTrace)); 1031 new CaughtException(exception, stackTrace));
1027 } 1032 }
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
1894 _completer.completeError(exception, stackTrace); 1899 _completer.completeError(exception, stackTrace);
1895 } 1900 }
1896 } 1901 }
1897 1902
1898 void _onCancel() { 1903 void _onCancel() {
1899 _context._cancelFuture(this); 1904 _context._cancelFuture(this);
1900 } 1905 }
1901 } 1906 }
1902 1907
1903 /** 1908 /**
1904 * [ResultComputedEvent] describes a value computed for a [ResultDescriptor].
1905 */
1906 class ResultComputedEvent<V> {
1907 /**
1908 * The context in which the value was computed.
1909 */
1910 final AnalysisContext context;
1911
1912 /**
1913 * The descriptor of the result which was computed.
1914 */
1915 final ResultDescriptor<V> descriptor;
1916
1917 /**
1918 * The target for which the result was computed.
1919 */
1920 final AnalysisTarget target;
1921
1922 /**
1923 * The computed value.
1924 */
1925 final V value;
1926
1927 ResultComputedEvent(this.context, this.descriptor, this.target, this.value);
1928
1929 @override
1930 String toString() => '$value for $descriptor of $target in $context';
1931 }
1932
1933 /**
1934 * An [AnalysisContext] that only contains sources for a Dart SDK. 1909 * An [AnalysisContext] that only contains sources for a Dart SDK.
1935 */ 1910 */
1936 class SdkAnalysisContext extends AnalysisContextImpl { 1911 class SdkAnalysisContext extends AnalysisContextImpl {
1937 @override 1912 @override
1938 AnalysisCache createCacheFromSourceFactory(SourceFactory factory) { 1913 AnalysisCache createCacheFromSourceFactory(SourceFactory factory) {
1939 if (factory == null) { 1914 if (factory == null) {
1940 return super.createCacheFromSourceFactory(factory); 1915 return super.createCacheFromSourceFactory(factory);
1941 } 1916 }
1942 DartSdk sdk = factory.dartSdk; 1917 DartSdk sdk = factory.dartSdk;
1943 if (sdk == null) { 1918 if (sdk == null) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1989 PendingFuture pendingFuture = 1964 PendingFuture pendingFuture =
1990 new PendingFuture<T>(_context, target, computeValue); 1965 new PendingFuture<T>(_context, target, computeValue);
1991 if (!pendingFuture.evaluate(entry)) { 1966 if (!pendingFuture.evaluate(entry)) {
1992 _context._pendingFutureTargets 1967 _context._pendingFutureTargets
1993 .putIfAbsent(target, () => <PendingFuture>[]) 1968 .putIfAbsent(target, () => <PendingFuture>[])
1994 .add(pendingFuture); 1969 .add(pendingFuture);
1995 } 1970 }
1996 return pendingFuture.future; 1971 return pendingFuture.future;
1997 } 1972 }
1998 } 1973 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698