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