PsiType (PsiElement element, PsiElement context) { //if(!element.isValid()) return null; if (element instanceof PsiType) { return (PsiType)element; } if (element instanceof PsiClass) { return PsiType.getJavaLangClass(context.getManager(), GlobalSearchScope.allScope(context.getProject())); } if (element instanceof PsiMethod) { return PsiUtil.getSmartReturnType((PsiMethod)element); } if (element instanceof GrVariable) { return TypeInferenceHelper.getVariableTypeInContext(context, (GrVariable)element); } if (element instanceof GrExpression) { return ((GrExpression)element).getType(); } if (element instanceof PsiField) { return ((PsiField)element).getType(); } return null; }