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

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

Issue 1927323002: Implement stable resolution of generic types without type arguments to their bounds. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Merge and regenerate the task graph. Created 4 years, 7 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/doc/tasks.html ('k') | pkg/analyzer/lib/src/generated/incremental_resolver.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/dart/ast/ast.dart'; 10 import 'package:analyzer/dart/ast/ast.dart';
(...skipping 1187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 setValue(IS_LAUNCHABLE, false); 1198 setValue(IS_LAUNCHABLE, false);
1199 setValue(LIBRARY_ELEMENT, library); 1199 setValue(LIBRARY_ELEMENT, library);
1200 setValue(LIBRARY_ELEMENT1, library); 1200 setValue(LIBRARY_ELEMENT1, library);
1201 setValue(LIBRARY_ELEMENT2, library); 1201 setValue(LIBRARY_ELEMENT2, library);
1202 setValue(LIBRARY_ELEMENT3, library); 1202 setValue(LIBRARY_ELEMENT3, library);
1203 setValue(LIBRARY_ELEMENT4, library); 1203 setValue(LIBRARY_ELEMENT4, library);
1204 setValue(LIBRARY_ELEMENT5, library); 1204 setValue(LIBRARY_ELEMENT5, library);
1205 setValue(LIBRARY_ELEMENT6, library); 1205 setValue(LIBRARY_ELEMENT6, library);
1206 setValue(LIBRARY_ELEMENT7, library); 1206 setValue(LIBRARY_ELEMENT7, library);
1207 setValue(LIBRARY_ELEMENT8, library); 1207 setValue(LIBRARY_ELEMENT8, library);
1208 setValue(LIBRARY_ELEMENT9, library);
1208 setValue(LINE_INFO, new LineInfo(<int>[0])); 1209 setValue(LINE_INFO, new LineInfo(<int>[0]));
1209 setValue(PARSE_ERRORS, AnalysisError.NO_ERRORS); 1210 setValue(PARSE_ERRORS, AnalysisError.NO_ERRORS);
1210 entry.setState(PARSED_UNIT, CacheState.FLUSHED); 1211 entry.setState(PARSED_UNIT, CacheState.FLUSHED);
1211 entry.setState(RESOLVE_TYPE_NAMES_ERRORS, CacheState.FLUSHED); 1212 entry.setState(RESOLVE_TYPE_NAMES_ERRORS, CacheState.FLUSHED);
1213 entry.setState(RESOLVE_TYPE_BOUNDS_ERRORS, CacheState.FLUSHED);
1212 setValue(SCAN_ERRORS, AnalysisError.NO_ERRORS); 1214 setValue(SCAN_ERRORS, AnalysisError.NO_ERRORS);
1213 setValue(SOURCE_KIND, SourceKind.LIBRARY); 1215 setValue(SOURCE_KIND, SourceKind.LIBRARY);
1214 entry.setState(TOKEN_STREAM, CacheState.FLUSHED); 1216 entry.setState(TOKEN_STREAM, CacheState.FLUSHED);
1215 setValue(UNITS, <Source>[librarySource]); 1217 setValue(UNITS, <Source>[librarySource]);
1216 1218
1217 LibrarySpecificUnit unit = 1219 LibrarySpecificUnit unit =
1218 new LibrarySpecificUnit(librarySource, librarySource); 1220 new LibrarySpecificUnit(librarySource, librarySource);
1219 entry = getCacheEntry(unit); 1221 entry = getCacheEntry(unit);
1220 setValue(HINTS, AnalysisError.NO_ERRORS); 1222 setValue(HINTS, AnalysisError.NO_ERRORS);
1221 setValue(LINTS, AnalysisError.NO_ERRORS); 1223 setValue(LINTS, AnalysisError.NO_ERRORS);
1222 setValue(LIBRARY_UNIT_ERRORS, AnalysisError.NO_ERRORS); 1224 setValue(LIBRARY_UNIT_ERRORS, AnalysisError.NO_ERRORS);
1223 setValue(RESOLVE_TYPE_NAMES_ERRORS, AnalysisError.NO_ERRORS); 1225 setValue(RESOLVE_TYPE_NAMES_ERRORS, AnalysisError.NO_ERRORS);
1224 setValue(RESOLVE_UNIT_ERRORS, AnalysisError.NO_ERRORS); 1226 setValue(RESOLVE_UNIT_ERRORS, AnalysisError.NO_ERRORS);
1225 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED); 1227 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED);
1226 entry.setState(RESOLVED_UNIT1, CacheState.FLUSHED); 1228 entry.setState(RESOLVED_UNIT1, CacheState.FLUSHED);
1227 entry.setState(RESOLVED_UNIT2, CacheState.FLUSHED); 1229 entry.setState(RESOLVED_UNIT2, CacheState.FLUSHED);
1228 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED); 1230 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED);
1229 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED); 1231 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED);
1230 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED); 1232 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED);
1231 entry.setState(RESOLVED_UNIT6, CacheState.FLUSHED); 1233 entry.setState(RESOLVED_UNIT6, CacheState.FLUSHED);
1232 entry.setState(RESOLVED_UNIT7, CacheState.FLUSHED); 1234 entry.setState(RESOLVED_UNIT7, CacheState.FLUSHED);
1233 entry.setState(RESOLVED_UNIT8, CacheState.FLUSHED); 1235 entry.setState(RESOLVED_UNIT8, CacheState.FLUSHED);
1234 entry.setState(RESOLVED_UNIT9, CacheState.FLUSHED); 1236 entry.setState(RESOLVED_UNIT9, CacheState.FLUSHED);
1235 entry.setState(RESOLVED_UNIT10, CacheState.FLUSHED); 1237 entry.setState(RESOLVED_UNIT10, CacheState.FLUSHED);
1236 entry.setState(RESOLVED_UNIT11, CacheState.FLUSHED); 1238 entry.setState(RESOLVED_UNIT11, CacheState.FLUSHED);
1237 entry.setState(RESOLVED_UNIT12, CacheState.FLUSHED); 1239 entry.setState(RESOLVED_UNIT12, CacheState.FLUSHED);
1240 entry.setState(RESOLVED_UNIT13, CacheState.FLUSHED);
1238 // USED_IMPORTED_ELEMENTS 1241 // USED_IMPORTED_ELEMENTS
1239 // USED_LOCAL_ELEMENTS 1242 // USED_LOCAL_ELEMENTS
1240 setValue(STRONG_MODE_ERRORS, AnalysisError.NO_ERRORS); 1243 setValue(STRONG_MODE_ERRORS, AnalysisError.NO_ERRORS);
1241 setValue(VARIABLE_REFERENCE_ERRORS, AnalysisError.NO_ERRORS); 1244 setValue(VARIABLE_REFERENCE_ERRORS, AnalysisError.NO_ERRORS);
1242 setValue(VERIFY_ERRORS, AnalysisError.NO_ERRORS); 1245 setValue(VERIFY_ERRORS, AnalysisError.NO_ERRORS);
1243 }); 1246 });
1244 1247
1245 CacheEntry entry = getCacheEntry(AnalysisContextTarget.request); 1248 CacheEntry entry = getCacheEntry(AnalysisContextTarget.request);
1246 entry.setValue(TYPE_PROVIDER, typeProvider, TargetedResult.EMPTY_LIST); 1249 entry.setValue(TYPE_PROVIDER, typeProvider, TargetedResult.EMPTY_LIST);
1247 } 1250 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1307 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED); 1310 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED);
1308 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED); 1311 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED);
1309 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED); 1312 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED);
1310 entry.setState(RESOLVED_UNIT6, CacheState.FLUSHED); 1313 entry.setState(RESOLVED_UNIT6, CacheState.FLUSHED);
1311 entry.setState(RESOLVED_UNIT7, CacheState.FLUSHED); 1314 entry.setState(RESOLVED_UNIT7, CacheState.FLUSHED);
1312 entry.setState(RESOLVED_UNIT8, CacheState.FLUSHED); 1315 entry.setState(RESOLVED_UNIT8, CacheState.FLUSHED);
1313 entry.setState(RESOLVED_UNIT9, CacheState.FLUSHED); 1316 entry.setState(RESOLVED_UNIT9, CacheState.FLUSHED);
1314 entry.setState(RESOLVED_UNIT10, CacheState.FLUSHED); 1317 entry.setState(RESOLVED_UNIT10, CacheState.FLUSHED);
1315 entry.setState(RESOLVED_UNIT11, CacheState.FLUSHED); 1318 entry.setState(RESOLVED_UNIT11, CacheState.FLUSHED);
1316 entry.setState(RESOLVED_UNIT12, CacheState.FLUSHED); 1319 entry.setState(RESOLVED_UNIT12, CacheState.FLUSHED);
1320 entry.setState(RESOLVED_UNIT13, CacheState.FLUSHED);
1317 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED); 1321 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED);
1318 } 1322 }
1319 1323
1320 @override 1324 @override
1321 bool validateCacheConsistency() { 1325 bool validateCacheConsistency() {
1322 int consistencyCheckStart = JavaSystem.nanoTime(); 1326 int consistencyCheckStart = JavaSystem.nanoTime();
1323 HashSet<Source> changedSources = new HashSet<Source>(); 1327 HashSet<Source> changedSources = new HashSet<Source>();
1324 HashSet<Source> missingSources = new HashSet<Source>(); 1328 HashSet<Source> missingSources = new HashSet<Source>();
1325 for (Source source in _cache.sources) { 1329 for (Source source in _cache.sources) {
1326 CacheEntry entry = _cache.get(source); 1330 CacheEntry entry = _cache.get(source);
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 /** 1546 /**
1543 * Return a [CompilationUnit] for the given library and unit sources, which 1547 * Return a [CompilationUnit] for the given library and unit sources, which
1544 * can be incrementally resolved. 1548 * can be incrementally resolved.
1545 */ 1549 */
1546 CompilationUnit _getIncrementallyResolvableUnit( 1550 CompilationUnit _getIncrementallyResolvableUnit(
1547 Source librarySource, Source unitSource) { 1551 Source librarySource, Source unitSource) {
1548 LibrarySpecificUnit target = 1552 LibrarySpecificUnit target =
1549 new LibrarySpecificUnit(librarySource, unitSource); 1553 new LibrarySpecificUnit(librarySource, unitSource);
1550 for (ResultDescriptor result in [ 1554 for (ResultDescriptor result in [
1551 RESOLVED_UNIT, 1555 RESOLVED_UNIT,
1556 RESOLVED_UNIT13,
1552 RESOLVED_UNIT12, 1557 RESOLVED_UNIT12,
1553 RESOLVED_UNIT11, 1558 RESOLVED_UNIT11,
1554 RESOLVED_UNIT10, 1559 RESOLVED_UNIT10,
1555 RESOLVED_UNIT9, 1560 RESOLVED_UNIT9,
1556 RESOLVED_UNIT8, 1561 RESOLVED_UNIT8
1557 RESOLVED_UNIT7
1558 ]) { 1562 ]) {
1559 CompilationUnit unit = getResult(target, result); 1563 CompilationUnit unit = getResult(target, result);
1560 if (unit != null) { 1564 if (unit != null) {
1561 return unit; 1565 return unit;
1562 } 1566 }
1563 } 1567 }
1564 return null; 1568 return null;
1565 } 1569 }
1566 1570
1567 /** 1571 /**
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1783 // previously being implicitly analyzed. If so, the cache entry needs to be 1787 // previously being implicitly analyzed. If so, the cache entry needs to be
1784 // update to reflect the new status and an event needs to be generated to 1788 // update to reflect the new status and an event needs to be generated to
1785 // inform clients that it is no longer being implicitly analyzed. 1789 // inform clients that it is no longer being implicitly analyzed.
1786 CacheEntry entry = _cache.get(source); 1790 CacheEntry entry = _cache.get(source);
1787 if (entry == null) { 1791 if (entry == null) {
1788 _createCacheEntry(source, true); 1792 _createCacheEntry(source, true);
1789 } else { 1793 } else {
1790 entry.explicitlyAdded = true; 1794 entry.explicitlyAdded = true;
1791 entry.modificationTime = getModificationStamp(source); 1795 entry.modificationTime = getModificationStamp(source);
1792 entry.setState(CONTENT, CacheState.INVALID); 1796 entry.setState(CONTENT, CacheState.INVALID);
1797 entry.setState(MODIFICATION_TIME, CacheState.INVALID);
1793 } 1798 }
1794 } 1799 }
1795 1800
1796 /** 1801 /**
1797 * Invalidate the [source] that was changed and any sources that referenced 1802 * Invalidate the [source] that was changed and any sources that referenced
1798 * the source before it existed. 1803 * the source before it existed.
1799 * 1804 *
1800 * Note: source may be considered "changed" if it was previously missing, 1805 * Note: source may be considered "changed" if it was previously missing,
1801 * but pointed to by an import or export directive. 1806 * but pointed to by an import or export directive.
1802 */ 1807 */
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
2195 } 2200 }
2196 DartSdk sdk = factory.dartSdk; 2201 DartSdk sdk = factory.dartSdk;
2197 if (sdk == null) { 2202 if (sdk == null) {
2198 throw new IllegalArgumentException( 2203 throw new IllegalArgumentException(
2199 "The source factory for an SDK analysis context must have a DartUriRes olver"); 2204 "The source factory for an SDK analysis context must have a DartUriRes olver");
2200 } 2205 }
2201 return new AnalysisCache( 2206 return new AnalysisCache(
2202 <CachePartition>[AnalysisEngine.instance.partitionManager.forSdk(sdk)]); 2207 <CachePartition>[AnalysisEngine.instance.partitionManager.forSdk(sdk)]);
2203 } 2208 }
2204 } 2209 }
OLDNEW
« no previous file with comments | « pkg/analyzer/doc/tasks.html ('k') | pkg/analyzer/lib/src/generated/incremental_resolver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698