Create own disposable for building separated modules
There's a new check that assert disposer hasn't be disposed yet.
This commit is contained in:
@@ -323,7 +323,6 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createApplicationEnvironment(parentDisposable: Disposable, configuration: CompilerConfiguration, configFilePaths: List<String>): JavaCoreApplicationEnvironment {
|
private fun createApplicationEnvironment(parentDisposable: Disposable, configuration: CompilerConfiguration, configFilePaths: List<String>): JavaCoreApplicationEnvironment {
|
||||||
|
|
||||||
Extensions.cleanRootArea(parentDisposable)
|
Extensions.cleanRootArea(parentDisposable)
|
||||||
registerAppExtensionPoints()
|
registerAppExtensionPoints()
|
||||||
val applicationEnvironment = JavaCoreApplicationEnvironment(parentDisposable)
|
val applicationEnvironment = JavaCoreApplicationEnvironment(parentDisposable)
|
||||||
|
|||||||
+14
-5
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.codegen;
|
|||||||
|
|
||||||
import com.intellij.openapi.Disposable;
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.util.Disposer;
|
import com.intellij.openapi.util.Disposer;
|
||||||
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import kotlin.Pair;
|
import kotlin.Pair;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -102,9 +103,10 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected ClassFileFactory compileA(@NotNull String fileName, @NotNull String content, List<TestFile> files) throws IOException {
|
protected ClassFileFactory compileA(@NotNull String fileName, @NotNull String content, List<TestFile> files) throws IOException {
|
||||||
|
Disposable compileDisposable = createDisposable("compileA");
|
||||||
KotlinCoreEnvironment environment =
|
KotlinCoreEnvironment environment =
|
||||||
KotlinTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea(getTestRootDisposable(), ConfigurationKind.ALL, getJdkKind(files));
|
KotlinTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea(compileDisposable, ConfigurationKind.ALL, getJdkKind(files));
|
||||||
return compileKotlin(fileName, content, aDir, environment, getTestRootDisposable());
|
return compileKotlin(fileName, content, aDir, environment, compileDisposable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -112,10 +114,17 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
|
|||||||
CompilerConfiguration configurationWithADirInClasspath = KotlinTestUtils
|
CompilerConfiguration configurationWithADirInClasspath = KotlinTestUtils
|
||||||
.compilerConfigurationForTests(ConfigurationKind.ALL, getJdkKind(files), KotlinTestUtils.getAnnotationsJar(), aDir);
|
.compilerConfigurationForTests(ConfigurationKind.ALL, getJdkKind(files), KotlinTestUtils.getAnnotationsJar(), aDir);
|
||||||
|
|
||||||
KotlinCoreEnvironment environment =
|
Disposable compileDisposable = createDisposable("compileB");
|
||||||
KotlinCoreEnvironment.createForTests(getTestRootDisposable(), configurationWithADirInClasspath, EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
KotlinCoreEnvironment environment = KotlinCoreEnvironment.createForTests(
|
||||||
|
compileDisposable, configurationWithADirInClasspath, EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
||||||
|
|
||||||
return compileKotlin(fileName, content, bDir, environment, getTestRootDisposable());
|
return compileKotlin(fileName, content, bDir, environment, compileDisposable);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Disposable createDisposable(String debugName) {
|
||||||
|
Disposable disposable = Disposer.newDisposable("CompileDisposable" + debugName);
|
||||||
|
Disposer.register(getTestRootDisposable(), disposable);
|
||||||
|
return disposable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
Reference in New Issue
Block a user