diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/AdvHighlightingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/AdvHighlightingTest.java index 23590b1fcdb7..0dc4e8957ab5 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/AdvHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/AdvHighlightingTest.java @@ -15,7 +15,6 @@ import com.intellij.openapi.editor.markup.TextAttributes; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.roots.LanguageLevelProjectExtension; import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -45,7 +44,7 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase { @Override protected Sdk getTestProjectJdk() { - LanguageLevelProjectExtension.getInstance(myProject).setLanguageLevel(LanguageLevel.JDK_1_4); + setLanguageLevel(LanguageLevel.JDK_1_4); return IdeaTestUtil.getMockJdk14(); } @@ -258,7 +257,7 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase { } public void testNotAKeywords() throws Exception { - LanguageLevelProjectExtension.getInstance(myProject).setLanguageLevel(LanguageLevel.JDK_1_4); + setLanguageLevel(LanguageLevel.JDK_1_4); doTest(BASE_PATH + "/notAKeywords/Test.java", BASE_PATH + "/notAKeywords", false, false); } diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java index 73dd665f1a84..ad6d4752d625 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java @@ -44,7 +44,7 @@ public class JavaAPIUsagesInspectionTest extends LightCodeInsightFixtureTestCase } public void testConstructor() { - IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_4); + IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_4, getTestRootDisposable()); myFixture.testHighlighting(getTestName(false) + ".java"); } @@ -61,7 +61,7 @@ public class JavaAPIUsagesInspectionTest extends LightCodeInsightFixtureTestCase } private void doTest() { - IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_6); + IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_6, getTestRootDisposable()); myFixture.testHighlighting(getTestName(false) + ".java"); } diff --git a/java/java-tests/testSrc/com/intellij/java/propertyBased/JavaPsiIndexConsistencyTest.kt b/java/java-tests/testSrc/com/intellij/java/propertyBased/JavaPsiIndexConsistencyTest.kt index db8f5b1b74ec..b325978a9a3b 100644 --- a/java/java-tests/testSrc/com/intellij/java/propertyBased/JavaPsiIndexConsistencyTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/propertyBased/JavaPsiIndexConsistencyTest.kt @@ -16,7 +16,6 @@ package com.intellij.java.propertyBased import com.intellij.lang.java.lexer.JavaLexer -import com.intellij.openapi.roots.LanguageLevelModuleExtensionImpl import com.intellij.openapi.vfs.VfsUtil import com.intellij.pom.java.LanguageLevel import com.intellij.psi.JavaPsiFacade @@ -55,13 +54,7 @@ class JavaPsiIndexConsistencyTest : LightCodeInsightFixtureTestCase() { data.generate(Generator.booleans()), data.generate(Generator.booleans())) }) PropertyChecker.customized().forAll(Generator.listsOf(genAction)) { actions -> - val prevLevel = LanguageLevelModuleExtensionImpl.getInstance(myFixture.module).languageLevel - try { - PsiIndexConsistencyTester.runActions(JavaModel(myFixture), *actions.toTypedArray()) - } - finally { - IdeaTestUtil.setModuleLanguageLevel(myFixture.module, prevLevel) - } + PsiIndexConsistencyTester.runActions(JavaModel(myFixture), *actions.toTypedArray()) true } @@ -113,7 +106,7 @@ class JavaPsiIndexConsistencyTest : LightCodeInsightFixtureTestCase() { private data class ChangeLanguageLevel(val level: LanguageLevel): Action { override fun performAction(model: Model) { PostponedFormatting.performAction(model) - IdeaTestUtil.setModuleLanguageLevel(model.fixture.module, level) + IdeaTestUtil.setModuleLanguageLevel(model.fixture.module, level, model.fixture.testRootDisposable) } } diff --git a/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java b/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java index 6e370b345b29..decd6269f1f8 100644 --- a/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java +++ b/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java @@ -5,6 +5,7 @@ import com.intellij.openapi.module.ModuleType; import com.intellij.openapi.module.StdModuleTypes; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.roots.LanguageLevelProjectExtension; +import com.intellij.openapi.util.Disposer; import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.impl.JavaPsiFacadeEx; import org.jetbrains.annotations.NotNull; @@ -61,7 +62,10 @@ public abstract class LightCodeInsightTestCase extends LightPlatformCodeInsightT } protected void setLanguageLevel(LanguageLevel level) { - LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(level); + LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(getProject()); + LanguageLevel prev = extension.getLanguageLevel(); + extension.setLanguageLevel(level); + Disposer.register(getTestRootDisposable(), () -> extension.setLanguageLevel(prev)); } @Override diff --git a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java index 6e9f5c6d60a0..3c5b2c13a1ff 100644 --- a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java +++ b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java @@ -2,7 +2,6 @@ package com.intellij.structuralsearch; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import com.intellij.openapi.roots.LanguageLevelProjectExtension; import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.pom.java.LanguageLevel; @@ -20,7 +19,7 @@ public abstract class StructuralReplaceTestCase extends LightQuickFixTestCase { protected void setUp() throws Exception { super.setUp(); - LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(LanguageLevel.JDK_1_4); + setLanguageLevel(LanguageLevel.JDK_1_4); options = new ReplaceOptions(); }