String (final PsiMethodCallExpression methodCallExpression) { final PsiReferenceParameterList list = methodCallExpression.getMethodExpression().getParameterList(); if (list != null && list.getTypeArguments().length > 0) { return list.getText(); } final PsiTypeParameter[] methodTypeParameters = getMethod().getTypeParameters(); if (methodTypeParameters.length > 0) { List<String> typeSignature = new ArrayList<>(); final PsiSubstitutor substitutor = methodCallExpression.resolveMethodGenerics().getSubstitutor(); for (final PsiTypeParameter typeParameter : methodTypeParameters) { final PsiType type = substitutor.substitute(typeParameter); if (!PsiTypesUtil.isDenotableType(type, methodCallExpression)) { return ""; } typeSignature.add(type.getPresentableText()); } return "<" + StringUtil.join(typeSignature, ", ") + ">"; } return ""; }