diff --git a/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java b/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java index 76b6531f89e1..d507b2ee9d15 100644 --- a/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java @@ -25,6 +25,7 @@ import com.intellij.testFramework.LightVirtualFile; import com.intellij.testFramework.PlatformTestCase; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.testFramework.PsiTestCase; +import com.intellij.util.GCUtil; @PlatformTestCase.WrapInCommand public class CodeFragmentsTest extends PsiTestCase{ @@ -68,4 +69,13 @@ public class CodeFragmentsTest extends PsiTestCase{ assertSame(fragment, PsiManager.getInstance(myProject).findFile(file)); assertTrue(fragment.isValid()); } + + public void testCorrectFragmentPsiAfterGc() { + VirtualFile file = JavaCodeFragmentFactory.getInstance(myProject).createExpressionCodeFragment("a", null, null, true).getViewProvider().getVirtualFile(); + assertInstanceOf(file, LightVirtualFile.class); + + GCUtil.tryGcSoftlyReachableObjects(); + + assertInstanceOf(PsiManager.getInstance(myProject).findFile(file), PsiExpressionCodeFragment.class); + } }