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

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

Issue 1753083003: Fix issue where errors aren't reported for a new overlay (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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
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 993 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 return _cache.getValue(target, result); 1004 return _cache.getValue(target, result);
1005 } 1005 }
1006 1006
1007 @override 1007 @override
1008 List<Source> getSourcesWithFullName(String path) { 1008 List<Source> getSourcesWithFullName(String path) {
1009 return analysisCache.getSourcesWithFullName(path); 1009 return analysisCache.getSourcesWithFullName(path);
1010 } 1010 }
1011 1011
1012 @override 1012 @override
1013 bool handleContentsChanged( 1013 bool handleContentsChanged(
1014 Source source, String originalContents, String newContents, bool notify) { 1014 Source source, String originalContents, String newContents, bool notify,
1015 {bool explicit: false}) {
1016 explicit = explicit && (newContents != null);
1015 CacheEntry entry = _cache.get(source); 1017 CacheEntry entry = _cache.get(source);
1016 if (entry == null) { 1018 if (entry == null) {
1017 return false; 1019 if (explicit) {
1020 // Create it now.
1021 entry = _createCacheEntry(source, true);
1022 } else {
1023 return false;
1024 }
1025 }
1026 if (explicit) {
1027 // Mark as explicit whether there was any other change or not.
1028 entry.explicitlyAdded = true;
1018 } 1029 }
1019 bool changed = newContents != originalContents; 1030 bool changed = newContents != originalContents;
1020 if (newContents != null) { 1031 if (newContents != null) {
1021 if (changed) { 1032 if (changed) {
1022 if (!analysisOptions.incremental || 1033 if (!analysisOptions.incremental ||
1023 !_tryPoorMansIncrementalResolution(source, newContents)) { 1034 !_tryPoorMansIncrementalResolution(source, newContents)) {
1024 // Don't compare with old contents because the cache has already been 1035 // Don't compare with old contents because the cache has already been
1025 // updated, and we know at this point that it changed. 1036 // updated, and we know at this point that it changed.
1026 _sourceChanged(source, compareWithOld: false); 1037 _sourceChanged(source, compareWithOld: false);
1027 } 1038 }
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
1737 } 1748 }
1738 } 1749 }
1739 1750
1740 /** 1751 /**
1741 * Create an entry for the newly added [source] and invalidate any sources 1752 * Create an entry for the newly added [source] and invalidate any sources
1742 * that referenced the source before it existed. 1753 * that referenced the source before it existed.
1743 */ 1754 */
1744 void _sourceAvailable(Source source) { 1755 void _sourceAvailable(Source source) {
1745 driver.reset(); 1756 driver.reset();
1746 // TODO(brianwilkerson) This method needs to check whether the source was 1757 // TODO(brianwilkerson) This method needs to check whether the source was
1747 // previously being implicitly analyzed. If so, the cache entry needs to be 1758 // previously being implicitly analyzed. If so, an event needs to be
1748 // update to reflect the new status and an event needs to be generated to 1759 // generated to inform clients that it is no longer being implicitly
1749 // inform clients that it is no longer being implicitly analyzed. 1760 // analyzed.
1750 CacheEntry entry = _cache.get(source); 1761 CacheEntry entry = _cache.get(source);
1751 if (entry == null) { 1762 if (entry == null) {
1752 _createCacheEntry(source, true); 1763 _createCacheEntry(source, true);
1753 } else { 1764 } else {
1754 entry.explicitlyAdded = true; 1765 entry.explicitlyAdded = true;
1755 entry.modificationTime = getModificationStamp(source); 1766 entry.modificationTime = getModificationStamp(source);
1756 entry.setState(CONTENT, CacheState.INVALID); 1767 entry.setState(CONTENT, CacheState.INVALID);
1757 } 1768 }
1758 } 1769 }
1759 1770
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
2143 } 2154 }
2144 DartSdk sdk = factory.dartSdk; 2155 DartSdk sdk = factory.dartSdk;
2145 if (sdk == null) { 2156 if (sdk == null) {
2146 throw new IllegalArgumentException( 2157 throw new IllegalArgumentException(
2147 "The source factory for an SDK analysis context must have a DartUriRes olver"); 2158 "The source factory for an SDK analysis context must have a DartUriRes olver");
2148 } 2159 }
2149 return new AnalysisCache( 2160 return new AnalysisCache(
2150 <CachePartition>[AnalysisEngine.instance.partitionManager.forSdk(sdk)]); 2161 <CachePartition>[AnalysisEngine.instance.partitionManager.forSdk(sdk)]);
2151 } 2162 }
2152 } 2163 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698