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() {
|
public boolean wantsDiagnostics() {
|
||||||
return originalTrace.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 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;
|
boolean isFirstStatement = true;
|
||||||
for (Iterator<? extends KtElement> iterator = block.iterator(); iterator.hasNext(); ) {
|
for (Iterator<? extends KtElement> iterator = block.iterator(); iterator.hasNext(); ) {
|
||||||
// Use filtering trace to keep effect system cache only for one statement
|
// Use filtering trace to keep effect system cache only for one statement
|
||||||
AbstractFilteringTrace traceForSingleStatement = new AbstractFilteringTrace(context.trace, "trace for single statement") {
|
AbstractFilteringTrace traceForSingleStatement = new EffectsFilteringTrace(context.trace);
|
||||||
@Override
|
|
||||||
protected <K, V> boolean shouldBeHiddenFromParent(@NotNull WritableSlice<K, V> slice, K key) {
|
|
||||||
return slice == BindingContext.EXPRESSION_EFFECTS;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
newContext = newContext.replaceBindingTrace(traceForSingleStatement);
|
newContext = newContext.replaceBindingTrace(traceForSingleStatement);
|
||||||
|
|
||||||
@@ -375,4 +370,14 @@ public class ExpressionTypingServices {
|
|||||||
return result;
|
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