diff --git a/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProvider.java b/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProvider.java index 7ff44384c50d..18b5c8901fb4 100644 --- a/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProvider.java +++ b/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProvider.java @@ -16,6 +16,8 @@ package com.intellij.psi; import com.intellij.ide.highlighter.JavaClassFileType; +import com.intellij.lang.Language; +import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; @@ -51,6 +53,12 @@ public class ClassFileViewProvider extends SingleRootFileViewProvider { super(manager, file, eventSystemEnabled, JavaClassFileType.INSTANCE); } + @NotNull + @Override + public Language getBaseLanguage() { + return JavaLanguage.INSTANCE; + } + @Override protected PsiFile createFile(@NotNull Project project, @NotNull VirtualFile file, @NotNull FileType fileType) { FileIndexFacade fileIndex = ServiceManager.getService(project, FileIndexFacade.class); diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsPsiTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsPsiTest.java index d5c0b71b712d..ab34446be4f8 100644 --- a/java/java-tests/testSrc/com/intellij/psi/ClsPsiTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/ClsPsiTest.java @@ -15,6 +15,7 @@ */ package com.intellij.psi; +import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.IoTestUtil; @@ -100,6 +101,12 @@ public class ClsPsiTest extends LightIdeaTestCase { assertFalse(aClass.isDeprecated()); } + public void testViewProviderHasJavaLanguage() { + PsiJavaFile file = getFile("MyClass"); + assertEquals(JavaLanguage.INSTANCE, file.getLanguage()); + assertEquals(JavaLanguage.INSTANCE, file.getViewProvider().getBaseLanguage()); + } + public void testClassMembers() { PsiClass aClass = getFile("MyClass").getClasses()[0]; diff --git a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java index 1cecb94c5bd7..e2d0b39bc816 100644 --- a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java +++ b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java @@ -293,12 +293,12 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi } public List getCachedPsiFiles() { - return ContainerUtil.createMaybeSingletonList(getCachedPsi(myBaseLanguage)); + return ContainerUtil.createMaybeSingletonList(getCachedPsi(getBaseLanguage())); } @NotNull public List getKnownTreeRoots() { - PsiFile psiFile = getCachedPsi(myBaseLanguage); + PsiFile psiFile = getCachedPsi(getBaseLanguage()); if (!(psiFile instanceof PsiFileImpl)) return Collections.emptyList(); FileElement element = ((PsiFileImpl)psiFile).getTreeElement(); return ContainerUtil.createMaybeSingletonList(element); @@ -457,7 +457,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi @NotNull @Override public SingleRootFileViewProvider createCopy(@NotNull final VirtualFile copy) { - return new SingleRootFileViewProvider(getManager(), copy, false, myBaseLanguage); + return new SingleRootFileViewProvider(getManager(), copy, false, getBaseLanguage()); } @Override @@ -572,7 +572,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi } public void markInvalidated() { - PsiFile psiFile = getCachedPsi(myBaseLanguage); + PsiFile psiFile = getCachedPsi(getBaseLanguage()); if (psiFile instanceof PsiFileEx) { ((PsiFileEx)psiFile).markInvalidated(); }