PsiType (final GrAnnotationMemberValue value) { if (value instanceof GrExpression) { return ((GrExpression)value).getType(); } else if (value instanceof GrAnnotation) { final PsiElement resolved = ((GrAnnotation)value).getClassReference().resolve(); if (resolved instanceof PsiClass) { return JavaPsiFacade.getElementFactory(value.getProject()).createType((PsiClass)resolved, PsiSubstitutor.EMPTY); } return null; } else if (value instanceof GrAnnotationArrayInitializer) { return getTupleByAnnotationArrayInitializer((GrAnnotationArrayInitializer)value); } return null; }