diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java index 691128cfb681..97661db162d4 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefClassImpl.java @@ -78,9 +78,14 @@ public final class RefClassImpl extends RefJavaElementImpl implements RefClass { } } } - RefElement refParent = parent != null ? manager.getReference(parent.getSourcePsi()) : null; + WritableRefEntity refParent = parent != null ? (WritableRefEntity)manager.getReference(parent.getSourcePsi()) : null; if (refParent != null) { - setOwner((WritableRefEntity)refParent); + if (!myManager.isDeclarationsFound()) { + refParent.add(this); + } + else { + setOwner(refParent); + } } else { PsiFile containingFile = getContainingFile(); diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java index 24ea31b0adfe..2fe1ade2d197 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java @@ -34,7 +34,14 @@ public final class RefFieldImpl extends RefJavaElementImpl implements RefField { LOG.assertTrue(psi != null); UField uElement = getUastElement(); LOG.assertTrue(uElement != null); - this.setOwner((WritableRefEntity)RefMethodImpl.findParentRef(psi, uElement, myManager)); + WritableRefEntity parentRef = (WritableRefEntity)RefMethodImpl.findParentRef(psi, uElement, myManager); + if (parentRef == null) return; + if (!myManager.isDeclarationsFound()) { + parentRef.add(this); + } + else { + this.setOwner(parentRef); + } } @Deprecated diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java index 9047a550e002..03f5ae60a772 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java @@ -87,10 +87,13 @@ public sealed class RefMethodImpl extends RefJavaElementImpl implements RefMetho } } - RefElement parentRef = findParentRef(sourcePsi, method, myManager); + WritableRefEntity parentRef = (WritableRefEntity)findParentRef(sourcePsi, method, myManager); if (parentRef == null) return; - setOwner((WritableRefEntity)parentRef); - if (!myManager.isDeclarationsFound()) return; + if (!myManager.isDeclarationsFound()) { + parentRef.add(this); + return; + } + setOwner(parentRef); PsiMethod javaPsi = method.getJavaPsi(); if (!method.isConstructor()) {