mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 22:59:47 +00:00
Don't report DeltaResult.KEEP_CONTINUE results as invalidated.
R=brianwilkerson@google.com BUG= Review URL: https://codereview.chromium.org/2204623004 .
This commit is contained in:
parent
757b7d094c
commit
a708585164
|
@ -673,7 +673,7 @@ class CacheEntry {
|
|||
deltaResult == DeltaResult.INVALIDATE_NO_DELTA) {
|
||||
_resultMap.remove(descriptor);
|
||||
// Stop depending on other results.
|
||||
if (deltaResult != DeltaResult.KEEP_CONTINUE) {
|
||||
{
|
||||
TargetedResult thisResult = new TargetedResult(target, descriptor);
|
||||
List<AnalysisCache> caches = _partition.containingCaches;
|
||||
int cacheLength = caches.length;
|
||||
|
@ -714,8 +714,10 @@ class CacheEntry {
|
|||
_partition._removeIfSource(target);
|
||||
}
|
||||
// Notify controller.
|
||||
_partition.onResultInvalidated
|
||||
.add(new InvalidatedResult(this, descriptor, thisData.value));
|
||||
if (deltaResult != DeltaResult.KEEP_CONTINUE) {
|
||||
_partition.onResultInvalidated
|
||||
.add(new InvalidatedResult(this, descriptor, thisData.value));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -701,6 +701,12 @@ class CacheEntryTest extends AbstractCacheTest {
|
|||
unorderedEquals([new TargetedResult(target, result2)]));
|
||||
expect(entry.getResultData(result2).dependedOnResults,
|
||||
unorderedEquals([new TargetedResult(target, result1)]));
|
||||
// record invalidated results
|
||||
Set<TargetedResult> reportedInvalidatedResults = new Set<TargetedResult>();
|
||||
cache.onResultInvalidated.listen((InvalidatedResult invalidatedResult) {
|
||||
reportedInvalidatedResults.add(new TargetedResult(
|
||||
invalidatedResult.entry.target, invalidatedResult.descriptor));
|
||||
});
|
||||
// invalidate result2 with Delta: keep result2, invalidate result3
|
||||
entry.setState(result2, CacheState.INVALID,
|
||||
delta: new _KeepContinueDelta(target, result2));
|
||||
|
@ -712,6 +718,10 @@ class CacheEntryTest extends AbstractCacheTest {
|
|||
unorderedEquals([new TargetedResult(target, result2)]));
|
||||
expect(entry.getResultData(result2).dependedOnResults,
|
||||
unorderedEquals([new TargetedResult(target, result1)]));
|
||||
// (target, result3) was reported as invalidated
|
||||
// (target, result2) was NOT reported
|
||||
expect(reportedInvalidatedResults,
|
||||
unorderedEquals([new TargetedResult(target, result3)]));
|
||||
}
|
||||
|
||||
test_setState_valid() {
|
||||
|
|
Loading…
Reference in a new issue