}
if (expri instanceof FunctionalExpression) {
c.add(new ConstraintExceptionFormula((FunctionalExpression) expri, substF));
} else if (expri instanceof Invocation && expri.isPolyExpression()) {
Invocation invocation = (Invocation) expri;
MethodBinding innerMethod = invocation.binding(null, false, null);
if (innerMethod instanceof ParameterizedGenericMethodBinding) {
InferenceContext18 innerCtx = invocation.getInferenceContext((ParameterizedMethodBinding) innerMethod);
if (innerCtx != null) { // otherwise innerMethod does not participate in inference
return addConstraintsToC(invocation.arguments(), c, innerMethod.genericMethod(), innerCtx.inferenceKind);
}