code: private boolean shouldPropagate(Type restype, Attr.ResultInfo target, InferenceContext inferenceContext) {
              return target.checkContext.inferenceContext() != emptyContext && //enclosing context is a generic method
                          inferenceContext.free(restype) && //return type contains inference vars
                          (!inferenceContext.inferencevars.contains(restype) || //no eager instantiation is required (as per 18.5.2)
                                  !needsEagerInstantiation((UndetVar)inferenceContext.asUndetVar(restype), target.pt, inferenceContext));
          }
docs: where