Chromium Code Reviews| Index: pkg/analyzer/lib/src/generated/engine.dart |
| diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart |
| index 173735221af803dc8873784685a3a38a83ec1ed8..75ec85de4154bd40fe5f33d971f997071ee0c2b3 100644 |
| --- a/pkg/analyzer/lib/src/generated/engine.dart |
| +++ b/pkg/analyzer/lib/src/generated/engine.dart |
| @@ -3215,8 +3215,23 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
| } else if (originalContents != null) { |
| _incrementalAnalysisCache = |
| IncrementalAnalysisCache.clear(_incrementalAnalysisCache, source); |
| - _sourceChanged(source); |
| - changed = true; |
| + String newContents; |
| + try { |
| + newContents = getContents(source).data; |
| + if (newContents == originalContents) { |
| + SourceEntry sourceEntry = _cache.get(source); |
| + if (sourceEntry != null) { |
|
Brian Wilkerson
2015/01/13 19:45:37
We should get the source entry before reading, bec
scheglov
2015/01/13 20:01:57
Done.
|
| + sourceEntry.modificationTime = getModificationStamp(source); |
|
Brian Wilkerson
2015/01/13 19:45:37
We should cache the content in the entry, and we s
scheglov
2015/01/13 20:01:57
Done.
|
| + } |
| + } else { |
| + changed = true; |
| + } |
| + } catch (e) { |
| + changed = true; |
| + } |
| + if (changed) { |
| + _sourceChanged(source); |
| + } |
| } |
| return changed; |
| } |