boolean (@NotNull DfaVariableValue var, @NotNull DfType originalType, @NotNull DfType newType) { TypeConstraint newConstraint = TypeConstraint.fromDfType(newType); if (newConstraint.isComparedByEquals() && !newConstraint.equals(TypeConstraint.fromDfType(originalType))) { // Type is narrowed to java.lang.String, java.lang.Integer, etc.: we consider String & boxed types // equivalence by content, but other object types by reference, so we need to remove distinct pairs, if any. convertReferenceEqualityToValueEquality(var); } return super.meetVariableType(var, originalType, newType); }