Properly disposing the environment in GenerateJavaToKotlinMethodMap
This commit is contained in:
+34
-25
@@ -17,8 +17,10 @@
|
|||||||
package org.jetbrains.jet.generators.jvm;
|
package org.jetbrains.jet.generators.jvm;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.intellij.openapi.Disposable;
|
||||||
import com.intellij.openapi.components.ServiceManager;
|
import com.intellij.openapi.components.ServiceManager;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
|
import com.intellij.openapi.util.Disposer;
|
||||||
import com.intellij.openapi.util.Pair;
|
import com.intellij.openapi.util.Pair;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.psi.PsiClass;
|
import com.intellij.psi.PsiClass;
|
||||||
@@ -68,35 +70,42 @@ public class GenerateJavaToKotlinMethodMap {
|
|||||||
CompilerConfiguration configuration = new CompilerConfiguration();
|
CompilerConfiguration configuration = new CompilerConfiguration();
|
||||||
configuration.add(CLASSPATH_KEY, PathUtil.findRtJar());
|
configuration.add(CLASSPATH_KEY, PathUtil.findRtJar());
|
||||||
|
|
||||||
JetCoreEnvironment coreEnvironment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), configuration);
|
Disposable disposable = CompileEnvironmentUtil.createMockDisposable();
|
||||||
|
try {
|
||||||
|
JetCoreEnvironment coreEnvironment = new JetCoreEnvironment(disposable, configuration);
|
||||||
|
|
||||||
StringBuilder buf = new StringBuilder();
|
StringBuilder buf = new StringBuilder();
|
||||||
Printer printer = new Printer(buf);
|
Printer printer = new Printer(buf);
|
||||||
|
|
||||||
printer.print(FileUtil.loadFile(new File("injector-generator/copyright.txt")))
|
printer.print(FileUtil.loadFile(new File("injector-generator/copyright.txt")))
|
||||||
.println()
|
.println()
|
||||||
.println("package org.jetbrains.jet.lang.resolve.java.kotlinSignature;")
|
.println("package org.jetbrains.jet.lang.resolve.java.kotlinSignature;")
|
||||||
.println()
|
.println()
|
||||||
.println("import com.google.common.collect.ImmutableMultimap;")
|
.println("import com.google.common.collect.ImmutableMultimap;")
|
||||||
.println()
|
.println()
|
||||||
.println("import static org.jetbrains.jet.lang.resolve.java.kotlinSignature.JavaToKotlinMethodMap.*;")
|
.println("import static org.jetbrains.jet.lang.resolve.java.kotlinSignature.JavaToKotlinMethodMap.*;")
|
||||||
.println()
|
.println()
|
||||||
.println("/* This file is generated by ", GenerateJavaToKotlinMethodMap.class.getName(), ". DO NOT EDIT! */")
|
.println("/* This file is generated by ", GenerateJavaToKotlinMethodMap.class.getName(), ". DO NOT EDIT! */")
|
||||||
.println("@SuppressWarnings(\"unchecked\")")
|
.println("@SuppressWarnings(\"unchecked\")")
|
||||||
.println("class JavaToKotlinMethodMapGenerated {").pushIndent()
|
.println("class JavaToKotlinMethodMapGenerated {").pushIndent()
|
||||||
.println("final ImmutableMultimap<String, JavaToKotlinMethodMap.ClassData> map;")
|
.println("final ImmutableMultimap<String, JavaToKotlinMethodMap.ClassData> map;")
|
||||||
.println()
|
.println()
|
||||||
.println("JavaToKotlinMethodMapGenerated() {").pushIndent()
|
.println("JavaToKotlinMethodMapGenerated() {").pushIndent()
|
||||||
.println("ImmutableMultimap.Builder<String, JavaToKotlinMethodMap.ClassData> b = ImmutableMultimap.builder();")
|
.println("ImmutableMultimap.Builder<String, JavaToKotlinMethodMap.ClassData> b = ImmutableMultimap.builder();")
|
||||||
.println();
|
.println();
|
||||||
|
|
||||||
MyMapBuilder builder = new MyMapBuilder(coreEnvironment.getProject());
|
MyMapBuilder builder = new MyMapBuilder(coreEnvironment.getProject());
|
||||||
printer.printWithNoIndent(builder.toString());
|
printer.printWithNoIndent(builder.toString());
|
||||||
|
|
||||||
|
printer.println("map = b.build();");
|
||||||
|
printer.popIndent().println("}");
|
||||||
|
printer.popIndent().println("}");
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
Disposer.dispose(disposable);
|
||||||
|
}
|
||||||
|
|
||||||
printer.println("map = b.build();");
|
|
||||||
printer.popIndent().println("}");
|
|
||||||
printer.popIndent().println("}");
|
|
||||||
return buf;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class MyMapBuilder extends JavaToKotlinClassMapBuilder {
|
private static class MyMapBuilder extends JavaToKotlinClassMapBuilder {
|
||||||
|
|||||||
Reference in New Issue
Block a user