tolerate fields with no containing class (EA-44534)

This commit is contained in:
peter
2013-03-18 19:07:56 +01:00
parent 8553143b8a
commit 5f2b2dd58f
@@ -480,10 +480,15 @@ public class PsiClassImplUtil {
if (list != null) {
for (final Pair<PsiMember, PsiSubstitutor> candidate : list) {
PsiMember candidateField = candidate.getFirst();
PsiSubstitutor finalSubstitutor = obtainFinalSubstitutor(candidateField.getContainingClass(), candidate.getSecond(), aClass,
PsiClass containingClass = candidateField.getContainingClass();
if (containingClass == null) {
LOG.error("No class for field " + candidateField.getName() + " of " + candidateField.getClass());
continue;
}
PsiSubstitutor finalSubstitutor = obtainFinalSubstitutor(containingClass, candidate.getSecond(), aClass,
substitutor, factory, languageLevel);
processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, candidateField.getContainingClass());
processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, containingClass);
if (!processor.execute(candidateField, state.put(PsiSubstitutor.KEY, finalSubstitutor))) return false;
}
}