@Nullable
  private static ReflectiveSignature composeMethodSignature(@Nullable PsiExpression methodTypeExpression, boolean allowRecursion) {
    final PsiExpression typeDefinition = findDefinition(PsiUtil.skipParenthesizedExprDown(methodTypeExpression));
    if (METHOD_TYPE_WITH_METHOD_TYPE_MATCHER.matches(typeDefinition) && !allowRecursion) {
      return null;
    }
    if (typeDefinition instanceof PsiMethodCallExpression) {
      return SIGNATURE_MAPPER.mapFirst((PsiMethodCallExpression)typeDefinition);
    }
    return null;
  }
@Nullable
  private static ReflectiveSignature composeMethodSignature(@Nullable PsiExpression methodTypeExpression, boolean allowRecursion)