Refactor GenerationState creation

This commit is contained in:
Dmitry Petrov
2017-11-28 16:49:19 +03:00
parent d6d6cef10d
commit d976eeabf7
10 changed files with 97 additions and 44 deletions
@@ -187,14 +187,14 @@ class KotlinDebuggerCaches(project: Project) {
}
private fun createTypeMapper(file: KtFile, analysisResult: AnalysisResult): KotlinTypeMapper {
val state = GenerationState(
val state = GenerationState.Builder(
file.project,
ClassBuilderFactories.THROW_EXCEPTION,
analysisResult.moduleDescriptor,
analysisResult.bindingContext,
listOf(file),
CompilerConfiguration.EMPTY
)
).build()
state.beforeCompile()
return state.typeMapper
}
@@ -469,15 +469,14 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour
override fun shouldGenerateScript(script: KtScript) = false
}
val state = GenerationState(
val state = GenerationState.Builder(
fileForDebugger.project,
if (!DEBUG_MODE) ClassBuilderFactories.binaries(false) else ClassBuilderFactories.TEST,
moduleDescriptor,
bindingContext,
files,
CompilerConfiguration.EMPTY,
generateClassFilter
)
CompilerConfiguration.EMPTY
).generateDeclaredClassFilter(generateClassFilter).build()
val frameVisitor = FrameVisitor(context)
@@ -324,11 +324,15 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
}
};
GenerationState state = new GenerationState(
GenerationState state = new GenerationState.Builder(
ktFile.getProject(), ClassBuilderFactories.TEST, resolutionFacade.getModuleDescriptor(), bindingContext, toProcess,
configuration, generateClassFilter,
configuration.getBoolean(JVMConfigurationKeys.IR) ? JvmIrCodegenFactory.INSTANCE : DefaultCodegenFactory.INSTANCE
);
configuration
)
.generateDeclaredClassFilter(generateClassFilter)
.codegenFactory(configuration.getBoolean(JVMConfigurationKeys.IR)
? JvmIrCodegenFactory.INSTANCE
: DefaultCodegenFactory.INSTANCE)
.build();
KotlinCodegenFacade.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);