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:
@@ -97,4 +97,9 @@ public class ObservableBindingTrace implements BindingTrace {
|
||||
public boolean wantsDiagnostics() {
|
||||
return originalTrace.wantsDiagnostics();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ObservableTrace over " + originalTrace.toString();
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-6
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user