From f415f2dc3c1830dfa89175754e86a008698d9dfc Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 21 Apr 2017 19:10:03 +0200 Subject: [PATCH] [java] diagnostics (EA-96056) --- .../com/intellij/psi/impl/source/PsiMethodImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java index d91f1aec0cb8..0cafd1e73591 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java @@ -46,6 +46,8 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; public class PsiMethodImpl extends JavaStubPsiElement implements PsiMethod, Queryable { private SoftReference myCachedType; @@ -224,7 +226,14 @@ public class PsiMethodImpl extends JavaStubPsiElement implements @Override @NotNull public PsiReferenceList getThrowsList() { - return getRequiredStubOrPsiChild(JavaStubElementTypes.THROWS_LIST); + PsiReferenceList child = getStubOrPsiChild(JavaStubElementTypes.THROWS_LIST); + if (child != null) return child; + + PsiMethodStub stub = getStub(); + Stream children = + stub != null ? stub.getChildrenStubs().stream().map(s -> s.getClass().getSimpleName() + " : " + s.getStubType()) + : Stream.of(getChildren()).map(e -> e.getClass().getSimpleName() + " : " + e.getNode().getElementType()); + throw new AssertionError("Missing throws list, file=" + getContainingFile() + " children:\n" + children.collect(Collectors.joining("\n"))); } @Override