diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java index 8ad10f9f9dc7..078751201768 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java @@ -103,11 +103,12 @@ public class OverrideImplementUtil { Map finals = new LinkedHashMap(); Map concretes = new LinkedHashMap(); + LOG.assertTrue(aClass.isValid()); Collection allMethodSigs = aClass.getVisibleSignatures(); PsiResolveHelper resolveHelper = JavaPsiFacade.getInstance(aClass.getProject()).getResolveHelper(); for (HierarchicalMethodSignature signature : allMethodSigs) { PsiMethod method = signature.getMethod(); - LOG.assertTrue(method.isValid()); + LOG.assertTrue(method.isValid(), aClass); if (method.hasModifierProperty(PsiModifier.STATIC) || !resolveHelper.isAccessible(method, aClass, aClass)) continue; PsiClass hisClass = method.getContainingClass(); diff --git a/java/java-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java b/java/java-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java index 81c76b2737c8..06909b936df0 100644 --- a/java/java-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java +++ b/java/java-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java @@ -15,6 +15,7 @@ */ package com.intellij.psi.impl; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Pair; import com.intellij.psi.*; import com.intellij.psi.impl.source.HierarchicalMethodSignatureImpl; @@ -32,6 +33,7 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class PsiSuperMethodImplUtil { + private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.PsiSuperMethodImplUtil"); private static final PsiCacheKey, PsiClass> SIGNATURES_KEY = PsiCacheKey .create("SIGNATURES_KEY", new NotNullFunction>() { @NotNull @@ -134,6 +136,7 @@ public class PsiSuperMethodImplUtil { }); for (PsiMethod method : aClass.getMethods()) { + LOG.assertTrue(method.isValid()); if (!includePrivates && method.hasModifierProperty(PsiModifier.PRIVATE)) continue; final MethodSignatureBackedByPsiMethod signature = MethodSignatureBackedByPsiMethod.create(method, substitutor, isInRawContext); HierarchicalMethodSignatureImpl newH = new HierarchicalMethodSignatureImpl(signature); @@ -145,6 +148,7 @@ public class PsiSuperMethodImplUtil { } list.add(method); + LOG.assertTrue(newH.getMethod().isValid()); result.put(signature, newH); map.put(signature, newH); } @@ -188,6 +192,7 @@ public class PsiSuperMethodImplUtil { HierarchicalMethodSignatureImpl hierarchicalMethodSignature = entry.getValue(); MethodSignature methodSignature = entry.getKey(); if (result.get(methodSignature) == null && PsiUtil.isAccessible(hierarchicalMethodSignature.getMethod(), aClass, aClass)) { + LOG.assertTrue(hierarchicalMethodSignature.getMethod().isValid()); result.put(methodSignature, hierarchicalMethodSignature); } } @@ -213,6 +218,7 @@ public class PsiSuperMethodImplUtil { } // just drop an invalid method declaration there - to highlight accordingly else if (!result.containsKey(signature)) { + LOG.assertTrue(hierarchicalMethodSignature.getMethod().isValid()); result.put(signature, hierarchicalMethodSignature); } }