private boolean shouldBeExpandedToLambda(PsiMethodReferenceExpression referenceExpression, int index) {
    PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(referenceExpression.getFunctionalInterfaceType());
    PsiMethod interfaceMethod = LambdaUtil.getFunctionalInterfaceMethod(resolveResult);
    if (interfaceMethod != null) {
      MethodSignature methodSignature = interfaceMethod.getSignature(LambdaUtil.getSubstitutor(interfaceMethod, resolveResult));
      if (index == 0 && methodSignature.getParameterTypes().length > 0 &&
          methodSignature.getParameterTypes()[0].isAssignableFrom(myMethod.getParameterList().getParameters()[0].getType())) {
        return false;
      }
    }
    return true;
  }
private boolean shouldBeExpandedToLambda(PsiMethodReferenceExpression referenceExpression, int index)