public static StatisticsUpdate collectStatisticChanges(LookupElement item, final Lookup lookup) { applyLastCompletionStatisticsUpdate(); final StatisticsInfo base = StatisticsWeigher.getBaseStatisticsInfo(item, null); if (base == StatisticsInfo.EMPTY) { return new StatisticsUpdate(StatisticsInfo.EMPTY); } StatisticsUpdate update = new StatisticsUpdate( StatisticsWeigher.composeStatsWithPrefix(base, lookup.itemPattern(item), true)); ourPendingUpdate = update; Disposer.register( update, new Disposable() { @Override public void dispose() { //noinspection AssignmentToStaticFieldFromInstanceMethod ourPendingUpdate = null; } }); return update; }