ReflectiveSignature (@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; }