From eeb991e3380613e56882b2b0e9394acca4380113 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Sun, 8 Apr 2012 19:22:22 +0400 Subject: [PATCH] Fixed exception on opening non-Kotlin class file. #EA-35266 fixed --- .../libraries/JetClsFileDecompiledPsiFileProvider.java | 6 +++++- .../jetbrains/jet/plugin/libraries/JetDecompiledData.java | 7 ++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetClsFileDecompiledPsiFileProvider.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetClsFileDecompiledPsiFileProvider.java index d5deae8690d..a7b1d6f6884 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetClsFileDecompiledPsiFileProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetClsFileDecompiledPsiFileProvider.java @@ -31,6 +31,10 @@ public class JetClsFileDecompiledPsiFileProvider implements ClsFileDecompiledPsi @Nullable @Override public PsiFile getDecompiledPsiFile(@NotNull PsiJavaFile psiFile) { - return JetDecompiledData.getDecompiledData((ClsFileImpl) psiFile).getJetFile(); + ClsFileImpl clsFile = (ClsFileImpl)psiFile; + if (JetDecompiledData.isKotlinFile(clsFile)) { + return JetDecompiledData.getDecompiledData(clsFile).getJetFile(); + } + return null; } } diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java index dc9d539bad5..c6b5ab1a631 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java @@ -80,9 +80,10 @@ public class JetDecompiledData { public static boolean isKotlinFile(@NotNull Project project, @NotNull VirtualFile vFile) { ClsFileImpl clsFile = getClsFile(project, vFile); - if (clsFile == null) { - return false; - } + return clsFile != null && isKotlinFile(clsFile); + } + + public static boolean isKotlinFile(@NotNull ClsFileImpl clsFile) { PsiClass psiClass = clsFile.getClasses()[0]; return DecompiledDataFactory.isKotlinNamespaceClass(psiClass) || DecompiledDataFactory.isKotlinClass(psiClass); } -- GitLab