java-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/ConstraintFormulaSet.java
public BoundSet reduce(TypeSolver typeSolver) {
        List<ConstraintFormula> constraints = new LinkedList<>(constraintFormulas);
        BoundSet boundSet = BoundSet.empty();
        while (constraints.size() > 0) {
            ConstraintFormula constraintFormula = constraints.remove(0);
            ConstraintFormula.ReductionResult reductionResult = constraintFormula.reduce(boundSet);
            constraints.addAll(reductionResult.getConstraintFormulas());
            boundSet.incorporate(reductionResult.getBoundSet(), typeSolver);
        }
        return boundSet;
    }
public BoundSet reduce(TypeSolver typeSolver) {
        List<ConstraintFormula> constraints = new LinkedList<>(constraintFormulas);
        BoundSet boundSet = BoundSet.empty();
        while (constraints.size() > 0) {
            ConstraintFormula constraintFormula = constraints.remove(0);
            ConstraintFormula.ReductionResult reductionResult = constraintFormula.reduce(boundSet);
            constraints.addAll(reductionResult.getConstraintFormulas());
            boundSet.incorporate(reductionResult.getBoundSet(), typeSolver);
        }
        return boundSet;
    }
public BoundSet reduce ( TypeSolver typeSolver ) { List < ConstraintFormula > constraints = new LinkedList <> ( constraintFormulas ) ; BoundSet boundSet = BoundSet . empty ( ) ; while ( constraints . size ( ) > 0 ) { ConstraintFormula constraintFormula = constraints . remove ( 0 ) ; ConstraintFormula . ReductionResult reductionResult = constraintFormula . reduce ( boundSet ) ; constraints . addAll ( reductionResult . getConstraintFormulas ( ) ) ; boundSet . incorporate ( reductionResult . getBoundSet ( ) , typeSolver ) ; } return boundSet ; }
Takes a compatibility assertion about an expression or type, called a constraint formula, and reduces it to a
set of bounds on inference variables. Often, a constraint formula reduces to other constraint formulas,
which must be recursively reduced. A procedure is followed to identify these additional constraint formulas and,
ultimately, to express via a bound set the conditions under which the choices for inferred types would render
each constraint formula true.
Takes a compatibility assertion about an expression or type called a constraint formula and reduces it to a set of bounds on inference variables . Often a constraint formula reduces to other constraint formulas which must be recursively reduced . A procedure is followed to identify these additional constraint formulas and ultimately to express via a bound set the conditions under which the choices for inferred types would render each constraint formula true .