[java-dfa] DfaMemoryStateImpl.updateQualifierOnEquality: do not do potentially expensive checks on non-qualified value

GitOrigin-RevId: 4a5ef91d384ee8085c6630645c26722e24dd7936
This commit is contained in:
Tagir Valeev
2024-08-28 14:39:56 +02:00
committed by intellij-monorepo-bot
parent 59325634ab
commit f1dc5b52bf

View File

@@ -1086,9 +1086,10 @@ public class DfaMemoryStateImpl implements DfaMemoryState {
}
private boolean updateQualifierOnEquality(DfaVariableValue target, DfaValue value) {
DfType constraint = target.getDescriptor().getQualifierConstraintFromValue(this, value);
DfaVariableValue qualifier = target.getQualifier();
return qualifier == null || meetDfType(qualifier, constraint);
if (qualifier == null) return true;
DfType constraint = target.getDescriptor().getQualifierConstraintFromValue(this, value);
return meetDfType(qualifier, constraint);
}
private boolean propagateConstant(DfaVariableValue value, DfConstantType<?> constant) {