void (@NotNull DfaMemoryStateImpl.QualifierStatusMap qualifierStatusMap) { Set<DfaVariableValue> vars = new LinkedHashSet<>(); for (DfaVariableValue value : myVariableTypes.keySet()) { if (qualifierStatusMap.shouldFlush(value)) { vars.add(value); } } for (EqClass aClass : myEqClasses) { if (aClass != null) { for (DfaVariableValue value : aClass) { if (qualifierStatusMap.shouldFlush(value)) { vars.add(value); } } } } for (DfaVariableValue value : vars) { doFlush(value, true); } myStack.replaceAll(val -> { DfType type = getDfType(val); for (Map.Entry<DerivedVariableDescriptor, DfType> entry : type.getDerivedValues().entrySet()) { DerivedVariableDescriptor descriptor = entry.getKey(); DfType derivedType = entry.getValue(); if (derivedType != DfType.TOP && !descriptor.isStable() && qualifierStatusMap.shouldFlush(val, descriptor.isCall())) { return myFactory.fromDfType(type.getBasicType()); } } if (val instanceof DfaVariableValue && qualifierStatusMap.shouldFlush((DfaVariableValue)val)) { return myFactory.fromDfType(type); } return val; }); }