diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java
index 43bb4cfd7586..d02568215059 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java
@@ -32,6 +32,7 @@ import com.intellij.psi.*;
import com.intellij.psi.impl.PsiImplUtil;
import com.intellij.psi.impl.source.PsiClassReferenceType;
import com.intellij.psi.impl.source.PsiImmediateClassType;
+import com.intellij.psi.infos.CandidateInfo;
import com.intellij.psi.util.ClassUtil;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
@@ -57,10 +58,14 @@ public class AnnotationsHighlightUtil {
private static final Logger LOG = Logger.getInstance("com.intellij.codeInsight.daemon.impl.analysis.AnnotationsHighlightUtil");
@Nullable
- static HighlightInfo checkNameValuePair(@NotNull PsiNameValuePair pair) {
+ static HighlightInfo checkNameValuePair(@NotNull PsiNameValuePair pair,
+ RefCountHolder refCountHolder) {
PsiReference ref = pair.getReference();
if (ref == null) return null;
PsiMethod method = (PsiMethod)ref.resolve();
+ if (refCountHolder != null) {
+ refCountHolder.registerReference(ref, method != null ? new CandidateInfo(method, PsiSubstitutor.EMPTY) : JavaResolveResult.EMPTY);
+ }
if (method == null) {
if (pair.getName() != null) {
final String description = JavaErrorMessages.message("annotation.unknown.method", ref.getCanonicalText());
diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java
index 03d80a2b7643..de65d25eceb3 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java
@@ -978,7 +978,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
@Override
public void visitNameValuePair(PsiNameValuePair pair) {
- myHolder.add(AnnotationsHighlightUtil.checkNameValuePair(pair));
+ myHolder.add(AnnotationsHighlightUtil.checkNameValuePair(pair, myRefCountHolder));
if (!myHolder.hasErrorResults()) {
PsiIdentifier nameId = pair.getNameIdentifier();
if (nameId != null) {
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/MarkUsedDefaultAnnotationMethodUnusedInspection.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/MarkUsedDefaultAnnotationMethodUnusedInspection.java
new file mode 100644
index 000000000000..9ae62c22b791
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/MarkUsedDefaultAnnotationMethodUnusedInspection.java
@@ -0,0 +1,6 @@
+@Annotation("")
+class Bar { }
+@interface Annotation {
+ String value();
+ int ints() default 0;
+}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java
index 71f7641abd16..e1d36256c71a 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightAdvHighlightingTest.java
@@ -461,6 +461,11 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase {
}
public void testIllegalWhitespaces() { doTest(false); }
+
+ public void testMarkUsedDefaultAnnotationMethodUnusedInspection() {
+ setLanguageLevel(LanguageLevel.JDK_1_5);
+ doTest(true);
+ }
// must stay public for PicoContainer to work
public static class MyAnnotator implements Annotator {