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.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 Loading... |
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<ResultComputedEvent> 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 entry = getCacheEntry(unit); | 1107 entry = getCacheEntry(unit); |
1103 setValue(HINTS, AnalysisError.NO_ERRORS); | 1108 setValue(HINTS, AnalysisError.NO_ERRORS); |
1104 // dartEntry.setValue(LINTS, AnalysisError.NO_ERRORS); | 1109 // dartEntry.setValue(LINTS, AnalysisError.NO_ERRORS); |
1105 entry.setState(RESOLVE_REFERENCES_ERRORS, CacheState.FLUSHED); | 1110 entry.setState(RESOLVE_REFERENCES_ERRORS, CacheState.FLUSHED); |
1106 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED); | 1111 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED); |
1107 entry.setState(RESOLVED_UNIT1, CacheState.FLUSHED); | 1112 entry.setState(RESOLVED_UNIT1, CacheState.FLUSHED); |
1108 entry.setState(RESOLVED_UNIT2, CacheState.FLUSHED); | 1113 entry.setState(RESOLVED_UNIT2, CacheState.FLUSHED); |
1109 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED); | 1114 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED); |
1110 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED); | 1115 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED); |
1111 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED); | 1116 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED); |
1112 entry.setState(RESOLVED_UNIT6, CacheState.FLUSHED); | 1117 entry.setState(RESOLVED_UNIT_NO_CONSTANTS, CacheState.FLUSHED); |
1113 // USED_IMPORTED_ELEMENTS | 1118 // USED_IMPORTED_ELEMENTS |
1114 // USED_LOCAL_ELEMENTS | 1119 // USED_LOCAL_ELEMENTS |
1115 setValue(VERIFY_ERRORS, AnalysisError.NO_ERRORS); | 1120 setValue(VERIFY_ERRORS, AnalysisError.NO_ERRORS); |
1116 }); | 1121 }); |
1117 | 1122 |
1118 CacheEntry entry = getCacheEntry(AnalysisContextTarget.request); | 1123 CacheEntry entry = getCacheEntry(AnalysisContextTarget.request); |
1119 entry.setValue(TYPE_PROVIDER, typeProvider, TargetedResult.EMPTY_LIST); | 1124 entry.setValue(TYPE_PROVIDER, typeProvider, TargetedResult.EMPTY_LIST); |
1120 } | 1125 } |
1121 | 1126 |
1122 @override | 1127 @override |
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1907 _completer.completeError(exception, stackTrace); | 1912 _completer.completeError(exception, stackTrace); |
1908 } | 1913 } |
1909 } | 1914 } |
1910 | 1915 |
1911 void _onCancel() { | 1916 void _onCancel() { |
1912 _context._cancelFuture(this); | 1917 _context._cancelFuture(this); |
1913 } | 1918 } |
1914 } | 1919 } |
1915 | 1920 |
1916 /** | 1921 /** |
1917 * [ResultComputedEvent] describes a value computed for a [ResultDescriptor]. | |
1918 */ | |
1919 class ResultComputedEvent<V> { | |
1920 /** | |
1921 * The context in which the value was computed. | |
1922 */ | |
1923 final AnalysisContext context; | |
1924 | |
1925 /** | |
1926 * The descriptor of the result which was computed. | |
1927 */ | |
1928 final ResultDescriptor<V> descriptor; | |
1929 | |
1930 /** | |
1931 * The target for which the result was computed. | |
1932 */ | |
1933 final AnalysisTarget target; | |
1934 | |
1935 /** | |
1936 * The computed value. | |
1937 */ | |
1938 final V value; | |
1939 | |
1940 ResultComputedEvent(this.context, this.descriptor, this.target, this.value); | |
1941 | |
1942 @override | |
1943 String toString() => '$value for $descriptor of $target in $context'; | |
1944 } | |
1945 | |
1946 /** | |
1947 * An [AnalysisContext] that only contains sources for a Dart SDK. | 1922 * An [AnalysisContext] that only contains sources for a Dart SDK. |
1948 */ | 1923 */ |
1949 class SdkAnalysisContext extends AnalysisContextImpl { | 1924 class SdkAnalysisContext extends AnalysisContextImpl { |
1950 @override | 1925 @override |
1951 AnalysisCache createCacheFromSourceFactory(SourceFactory factory) { | 1926 AnalysisCache createCacheFromSourceFactory(SourceFactory factory) { |
1952 if (factory == null) { | 1927 if (factory == null) { |
1953 return super.createCacheFromSourceFactory(factory); | 1928 return super.createCacheFromSourceFactory(factory); |
1954 } | 1929 } |
1955 DartSdk sdk = factory.dartSdk; | 1930 DartSdk sdk = factory.dartSdk; |
1956 if (sdk == null) { | 1931 if (sdk == null) { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2002 PendingFuture pendingFuture = | 1977 PendingFuture pendingFuture = |
2003 new PendingFuture<T>(_context, target, computeValue); | 1978 new PendingFuture<T>(_context, target, computeValue); |
2004 if (!pendingFuture.evaluate(entry)) { | 1979 if (!pendingFuture.evaluate(entry)) { |
2005 _context._pendingFutureTargets | 1980 _context._pendingFutureTargets |
2006 .putIfAbsent(target, () => <PendingFuture>[]) | 1981 .putIfAbsent(target, () => <PendingFuture>[]) |
2007 .add(pendingFuture); | 1982 .add(pendingFuture); |
2008 } | 1983 } |
2009 return pendingFuture.future; | 1984 return pendingFuture.future; |
2010 } | 1985 } |
2011 } | 1986 } |
OLD | NEW |