A stub workaround for exception thrown when something is annotated with @Retention(RetentionPolicy.RUNITME) or something like this

This commit is contained in:
Andrey Breslav
2012-01-31 14:49:20 +04:00
parent 27425c5851
commit 1bca00ea96
@@ -1,6 +1,7 @@
package org.jetbrains.jet.lang.resolve.java.kt; package org.jetbrains.jet.lang.resolve.java.kt;
import com.intellij.psi.PsiAnnotation; import com.intellij.psi.PsiAnnotation;
import com.intellij.psi.PsiAnnotationMemberValue;
import com.intellij.psi.PsiLiteralExpression; import com.intellij.psi.PsiLiteralExpression;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -28,10 +29,12 @@ public class PsiAnnotationUtils {
if (annotation == null) { if (annotation == null) {
return defaultValue; return defaultValue;
} else { } else {
PsiLiteralExpression attributeValue = (PsiLiteralExpression) annotation.findAttributeValue(field); PsiAnnotationMemberValue value = annotation.findAttributeValue(field);
if (attributeValue != null) { if (value instanceof PsiLiteralExpression) {
PsiLiteralExpression attributeValue = (PsiLiteralExpression) value;
return (T) attributeValue.getValue(); return (T) attributeValue.getValue();
} else { }
else {
return defaultValue; return defaultValue;
} }
} }