Skip to content

Commit 83c336d

Browse files
authored
Log when a derived gets cleared (microsoft#236739)
1 parent 094e96a commit 83c336d

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/vs/base/common/observableInternal/derived.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ export class Derived<T, TChangeSummary = any> extends BaseObservable<T, void> im
220220
*/
221221
this.state = DerivedState.initial;
222222
this.value = undefined;
223+
getLogger()?.handleDerivedCleared(this);
223224
for (const d of this.dependencies) {
224225
d.removeObserver(this);
225226
}

src/vs/base/common/observableInternal/logging.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export interface IObservableLogger {
4848

4949
handleDerivedCreated(observable: Derived<any>): void;
5050
handleDerivedRecomputed(observable: Derived<any>, info: IChangeInformation): void;
51+
handleDerivedCleared(observable: Derived<any>): void;
5152

5253
handleBeginTransaction(transaction: TransactionImpl): void;
5354
handleEndTransaction(): void;
@@ -170,6 +171,15 @@ export class ConsoleObservableLogger implements IObservableLogger {
170171
changedObservables.clear();
171172
}
172173

174+
handleDerivedCleared(derived: Derived<unknown>): void {
175+
if (!this._isIncluded(derived)) { return; }
176+
177+
console.log(...this.textToConsoleArgs([
178+
formatKind('derived cleared'),
179+
styled(derived.debugName, { color: 'BlueViolet' }),
180+
]));
181+
}
182+
173183
handleFromEventObservableTriggered(observable: FromEventObservable<any, any>, info: IChangeInformation): void {
174184
if (!this._isIncluded(observable)) { return; }
175185

0 commit comments

Comments
 (0)