From fc9caebfe2892a7e07bdb8a3364d649f7e8d07f9 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 1 Jul 2014 17:22:27 +0200 Subject: [PATCH] diagnostics for EA-55898 - assert: TemplateLanguageStructureViewBuilder. --- .../TemplateLanguageStructureViewBuilder.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java b/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java index 83174587bf01..849b01b703b9 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java +++ b/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java @@ -60,9 +60,7 @@ public abstract class TemplateLanguageStructureViewBuilder implements StructureV myVirtualFile = psiElement.getContainingFile().getVirtualFile(); myProject = psiElement.getProject(); - final TemplateLanguageFileViewProvider provider = getViewProvider(); - assert provider != null; - myTemplateDataLanguage = provider.getTemplateDataLanguage(); + myTemplateDataLanguage = getNotNullViewProvider().getTemplateDataLanguage(); } private void updateAfterPsiChange() { @@ -115,6 +113,15 @@ public abstract class TemplateLanguageStructureViewBuilder implements StructureV return provider instanceof TemplateLanguageFileViewProvider ? (TemplateLanguageFileViewProvider)provider : null; } + @NotNull + private TemplateLanguageFileViewProvider getNotNullViewProvider() { + final FileViewProvider provider = PsiManager.getInstance(myProject).findViewProvider(myVirtualFile); + if (provider == null || !(provider instanceof TemplateLanguageFileViewProvider)) { + throw new AssertionError("Not a template view provider for " + myVirtualFile + ": " + provider); + } + return (TemplateLanguageFileViewProvider)provider; + } + private void updateBaseLanguageView() { if (myBaseStructureViewDescriptor == null || !myProject.isOpen()) return; final StructureViewComponent view = (StructureViewComponent)myBaseStructureViewDescriptor.structureView; @@ -158,8 +165,7 @@ public abstract class TemplateLanguageStructureViewBuilder implements StructureV public StructureView createStructureView(FileEditor fileEditor, @NotNull Project project) { myFileEditor = fileEditor; List viewDescriptors = new ArrayList(); - final TemplateLanguageFileViewProvider provider = getViewProvider(); - assert provider != null; + final TemplateLanguageFileViewProvider provider = getNotNullViewProvider(); final StructureViewComposite.StructureViewDescriptor structureViewDescriptor = createMainView(fileEditor, provider.getPsi(provider.getBaseLanguage())); if (structureViewDescriptor != null) viewDescriptors.add(structureViewDescriptor);