Minor: improve rendering of Traces in debugger

- add toString for ObservableBindingTrace (for debugging)
- add toString for LockProtectedTrace (for debugging)
- extract anonymous AbstractFilteringTrace to EffectFilteringTrace
This commit is contained in:
Dmitry Savvinov
2018-12-19 16:58:51 +03:00
parent 69fff12384
commit 0b1ff1a457
3 changed files with 20 additions and 6 deletions
@@ -97,4 +97,9 @@ public class ObservableBindingTrace implements BindingTrace {
public boolean wantsDiagnostics() {
return originalTrace.wantsDiagnostics();
}
@Override
public String toString() {
return "ObservableTrace over " + originalTrace.toString();
}
}
@@ -84,5 +84,9 @@ class LockBasedLazyResolveStorageManager(private val storageManager: StorageMana
}
override fun wantsDiagnostics() = trace.wantsDiagnostics()
override fun toString(): String {
return "Lock-protected trace of LockBasedLazyResolveStorageManager $storageManager"
}
}
}
@@ -258,12 +258,7 @@ public class ExpressionTypingServices {
boolean isFirstStatement = true;
for (Iterator<? extends KtElement> iterator = block.iterator(); iterator.hasNext(); ) {
// Use filtering trace to keep effect system cache only for one statement
AbstractFilteringTrace traceForSingleStatement = new AbstractFilteringTrace(context.trace, "trace for single statement") {
@Override
protected <K, V> boolean shouldBeHiddenFromParent(@NotNull WritableSlice<K, V> slice, K key) {
return slice == BindingContext.EXPRESSION_EFFECTS;
}
};
AbstractFilteringTrace traceForSingleStatement = new EffectsFilteringTrace(context.trace);
newContext = newContext.replaceBindingTrace(traceForSingleStatement);
@@ -375,4 +370,14 @@ public class ExpressionTypingServices {
return result;
}
private static class EffectsFilteringTrace extends AbstractFilteringTrace {
public EffectsFilteringTrace(BindingTrace parentTrace) {
super(parentTrace, "Effects filtering trace");
}
@Override
protected <K, V> boolean shouldBeHiddenFromParent(@NotNull WritableSlice<K, V> slice, K key) {
return slice == BindingContext.EXPRESSION_EFFECTS;
}
}
}