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

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

Issue 2204623004: Don't report DeltaResult.KEEP_CONTINUE results as invalidated. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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/test/src/context/cache_test.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.cache; 5 library analyzer.src.context.cache;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 9
10 import 'package:analyzer/file_system/file_system.dart'; 10 import 'package:analyzer/file_system/file_system.dart';
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 delta = null; 666 delta = null;
667 } 667 }
668 if (deltaResult == DeltaResult.INVALIDATE_KEEP_DEPENDENCIES) { 668 if (deltaResult == DeltaResult.INVALIDATE_KEEP_DEPENDENCIES) {
669 thisData.value = descriptor.defaultValue; 669 thisData.value = descriptor.defaultValue;
670 thisData.state = CacheState.INVALID; 670 thisData.state = CacheState.INVALID;
671 } else if (deltaResult == null || 671 } else if (deltaResult == null ||
672 deltaResult == DeltaResult.INVALIDATE || 672 deltaResult == DeltaResult.INVALIDATE ||
673 deltaResult == DeltaResult.INVALIDATE_NO_DELTA) { 673 deltaResult == DeltaResult.INVALIDATE_NO_DELTA) {
674 _resultMap.remove(descriptor); 674 _resultMap.remove(descriptor);
675 // Stop depending on other results. 675 // Stop depending on other results.
676 if (deltaResult != DeltaResult.KEEP_CONTINUE) { 676 {
677 TargetedResult thisResult = new TargetedResult(target, descriptor); 677 TargetedResult thisResult = new TargetedResult(target, descriptor);
678 List<AnalysisCache> caches = _partition.containingCaches; 678 List<AnalysisCache> caches = _partition.containingCaches;
679 int cacheLength = caches.length; 679 int cacheLength = caches.length;
680 List<TargetedResult> results = thisData.dependedOnResults; 680 List<TargetedResult> results = thisData.dependedOnResults;
681 int resultLength = results.length; 681 int resultLength = results.length;
682 for (int i = 0; i < resultLength; i++) { 682 for (int i = 0; i < resultLength; i++) {
683 TargetedResult dependedOnResult = results[i]; 683 TargetedResult dependedOnResult = results[i];
684 for (int j = 0; j < cacheLength; j++) { 684 for (int j = 0; j < cacheLength; j++) {
685 AnalysisCache cache = caches[j]; 685 AnalysisCache cache = caches[j];
686 CacheEntry entry = cache.get(dependedOnResult.target); 686 CacheEntry entry = cache.get(dependedOnResult.target);
(...skipping 20 matching lines...) Expand all
707 _invalidateDependentResults(id, thisData, delta, level + 1); 707 _invalidateDependentResults(id, thisData, delta, level + 1);
708 // If empty and not explicitly added, remove the entry altogether. 708 // If empty and not explicitly added, remove the entry altogether.
709 if (_resultMap.isEmpty && !explicitlyAdded) { 709 if (_resultMap.isEmpty && !explicitlyAdded) {
710 CacheEntry entry = _partition.entryMap.remove(target); 710 CacheEntry entry = _partition.entryMap.remove(target);
711 if (entry != null) { 711 if (entry != null) {
712 entry.dispose(); 712 entry.dispose();
713 } 713 }
714 _partition._removeIfSource(target); 714 _partition._removeIfSource(target);
715 } 715 }
716 // Notify controller. 716 // Notify controller.
717 _partition.onResultInvalidated 717 if (deltaResult != DeltaResult.KEEP_CONTINUE) {
718 .add(new InvalidatedResult(this, descriptor, thisData.value)); 718 _partition.onResultInvalidated
719 .add(new InvalidatedResult(this, descriptor, thisData.value));
720 }
719 } 721 }
720 722
721 /** 723 /**
722 * Invalidates all the results of this entry, with propagation. 724 * Invalidates all the results of this entry, with propagation.
723 */ 725 */
724 void _invalidateAll() { 726 void _invalidateAll() {
725 List<ResultDescriptor> results = _resultMap.keys.toList(); 727 List<ResultDescriptor> results = _resultMap.keys.toList();
726 int length = results.length; 728 int length = results.length;
727 for (int i = 0; i < length; i++) { 729 for (int i = 0; i < length; i++) {
728 ResultDescriptor result = results[i]; 730 ResultDescriptor result = results[i];
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after
1501 void resultAccessed(TargetedResult result) {} 1503 void resultAccessed(TargetedResult result) {}
1502 1504
1503 @override 1505 @override
1504 List<TargetedResult> resultStored(TargetedResult newResult, newValue) { 1506 List<TargetedResult> resultStored(TargetedResult newResult, newValue) {
1505 return TargetedResult.EMPTY_LIST; 1507 return TargetedResult.EMPTY_LIST;
1506 } 1508 }
1507 1509
1508 @override 1510 @override
1509 void targetRemoved(AnalysisTarget target) {} 1511 void targetRemoved(AnalysisTarget target) {}
1510 } 1512 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/src/context/cache_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698