Properly disposing the environment in GenerateJavaToKotlinMethodMap

This commit is contained in:
Andrey Breslav
2013-09-24 13:07:20 -07:00
parent da1325f5cc
commit c94f97bf57
@@ -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 {