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:
Nikolay Krasko
2016-03-18 13:26:07 +03:00
parent 04cea0993c
commit 6291bb92bd
2 changed files with 14 additions and 6 deletions
@@ -323,7 +323,6 @@ class KotlinCoreEnvironment private constructor(
}
private fun createApplicationEnvironment(parentDisposable: Disposable, configuration: CompilerConfiguration, configFilePaths: List<String>): JavaCoreApplicationEnvironment {
Extensions.cleanRootArea(parentDisposable)
registerAppExtensionPoints()
val applicationEnvironment = JavaCoreApplicationEnvironment(parentDisposable)
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.codegen;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.text.StringUtil;
import kotlin.Pair;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -102,9 +103,10 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
@NotNull
protected ClassFileFactory compileA(@NotNull String fileName, @NotNull String content, List<TestFile> files) throws IOException {
Disposable compileDisposable = createDisposable("compileA");
KotlinCoreEnvironment environment =
KotlinTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea(getTestRootDisposable(), ConfigurationKind.ALL, getJdkKind(files));
return compileKotlin(fileName, content, aDir, environment, getTestRootDisposable());
KotlinTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea(compileDisposable, ConfigurationKind.ALL, getJdkKind(files));
return compileKotlin(fileName, content, aDir, environment, compileDisposable);
}
@NotNull
@@ -112,10 +114,17 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
CompilerConfiguration configurationWithADirInClasspath = KotlinTestUtils
.compilerConfigurationForTests(ConfigurationKind.ALL, getJdkKind(files), KotlinTestUtils.getAnnotationsJar(), aDir);
KotlinCoreEnvironment environment =
KotlinCoreEnvironment.createForTests(getTestRootDisposable(), configurationWithADirInClasspath, EnvironmentConfigFiles.JVM_CONFIG_FILES);
Disposable compileDisposable = createDisposable("compileB");
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