protected Set<FIsA> createInitialAssignmentConstraints(final AnnotatedTypeMirror assignedTo,final AnnotatedTypeMirror boxedReturnType,final AnnotatedTypeFactory typeFactory,final Set<TypeVariable> targets){
  final Set<FIsA> result=new LinkedHashSet<>();
  if (assignedTo != null) {
    final Set<AFConstraint> reducedConstraints=new LinkedHashSet<>();
    final Queue<AFConstraint> constraints=new LinkedList<>();
    constraints.add(new F2A(boxedReturnType,assignedTo));
    reduceAfConstraints(typeFactory,reducedConstraints,constraints,targets);
    for (    final AFConstraint reducedConstraint : reducedConstraints) {
      if (reducedConstraint instanceof FIsA) {
        result.add((FIsA)reducedConstraint);
      }
    }
  }
  return result;
}

protected Set < FIsA > createInitialAssignmentConstraints ( final AnnotatedTypeMirror assignedTo , final AnnotatedTypeMirror boxedReturnType , final AnnotatedTypeFactory typeFactory , final Set < TypeVariable > targets ) { final Set < FIsA > result = new LinkedHashSet < > ( ) ; if ( assignedTo != null ) { final Set < AFConstraint > reducedConstraints = new LinkedHashSet < > ( ) ; final Queue < AFConstraint > constraints = new LinkedList < > ( ) ; constraints . add ( new F2A ( boxedReturnType , assignedTo ) ) ; reduceAfConstraints ( typeFactory , reducedConstraints , constraints , targets ) ; for ( final AFConstraint reducedConstraint : reducedConstraints ) { if ( reducedConstraint instanceof FIsA ) { result . add ( ( FIsA ) reducedConstraint ) ; } } } return result ; }
create a set of constraints between return type and any type to which it is assigned . reduce these set of constraints and remove any that is not an equality ( fisa ) constraint .
