String (@NotNull UCallableReferenceExpression expression) { //TODO why getQualifierType() -> null for Java? String classFqn = getTypeClassFqn(expression.getQualifierType()); if (classFqn != null) return classFqn; UExpression qualifierExpression = expression.getQualifierExpression(); if (qualifierExpression == null) return null; if (qualifierExpression instanceof UReferenceExpression) { PsiElement resolved = ((UReferenceExpression)qualifierExpression).resolve(); if (resolved instanceof PsiClass) { return ((PsiClass)resolved).getQualifiedName(); } else if (resolved instanceof PsiVariable) { return getTypeClassFqn(((PsiVariable)resolved).getType()); } } else if (qualifierExpression instanceof UThisExpression) { return getTypeClassFqn(qualifierExpression.getExpressionType()); } return null; }