Refactor, make CodegenTestCase.generateCommon() static and reusable

This commit is contained in:
Alexander Udalov
2012-10-08 18:47:25 +04:00
parent fcbc95bbb4
commit 988af8208c
@@ -340,30 +340,32 @@ public abstract class CodegenTestCase extends UsefulTestCase {
} }
protected String generateToText() { protected String generateToText() {
if(alreadyGenerated == null) if (alreadyGenerated == null)
alreadyGenerated = generateCommon(ClassBuilderFactories.TEST); alreadyGenerated = generateCommon(ClassBuilderFactories.TEST, myEnvironment, myFiles);
return alreadyGenerated.getFactory().createText(); return alreadyGenerated.getFactory().createText();
} }
private GenerationState generateCommon(ClassBuilderFactory classBuilderFactory) { @NotNull
if(alreadyGenerated != null) protected static GenerationState generateCommon(
return alreadyGenerated; @NotNull ClassBuilderFactory classBuilderFactory,
@NotNull JetCoreEnvironment environment,
final AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegrationAndCheckForErrors( @NotNull CodegenTestFiles files
myEnvironment.getProject(), ) {
myFiles.getPsiFiles(), AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegrationAndCheckForErrors(
myFiles.getScriptParameterTypes(), environment.getProject(),
files.getPsiFiles(),
files.getScriptParameterTypes(),
Predicates.<PsiFile>alwaysTrue(), Predicates.<PsiFile>alwaysTrue(),
BuiltinsScopeExtensionMode.ALL); BuiltinsScopeExtensionMode.ALL);
analyzeExhaust.throwIfError(); analyzeExhaust.throwIfError();
AnalyzingUtils.throwExceptionOnErrors(analyzeExhaust.getBindingContext()); AnalyzingUtils.throwExceptionOnErrors(analyzeExhaust.getBindingContext());
alreadyGenerated = new GenerationState( GenerationState state = new GenerationState(
myEnvironment.getProject(), classBuilderFactory, Progress.DEAF, analyzeExhaust, myFiles.getPsiFiles(), environment.getProject(), classBuilderFactory, Progress.DEAF, analyzeExhaust, files.getPsiFiles(),
myEnvironment.getConfiguration().get(JVMConfigurationKeys.BUILTIN_TO_JAVA_TYPES_MAPPING_KEY, BuiltinToJavaTypesMapping.ENABLED), environment.getConfiguration().get(JVMConfigurationKeys.BUILTIN_TO_JAVA_TYPES_MAPPING_KEY, BuiltinToJavaTypesMapping.ENABLED),
myEnvironment.getConfiguration().get(JVMConfigurationKeys.GENERATE_NOT_NULL_ASSERTIONS, true) environment.getConfiguration().get(JVMConfigurationKeys.GENERATE_NOT_NULL_ASSERTIONS, true)
); );
GenerationStrategy.STANDARD.compileCorrectFiles(alreadyGenerated, CompilationErrorHandler.THROW_EXCEPTION); GenerationStrategy.STANDARD.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);
return alreadyGenerated; return state;
} }
protected Class generateNamespaceClass() { protected Class generateNamespaceClass() {
@@ -407,7 +409,7 @@ public abstract class CodegenTestCase extends UsefulTestCase {
private GenerationState generateClassesInFileGetState() { private GenerationState generateClassesInFileGetState() {
GenerationState generationState; GenerationState generationState;
try { try {
generationState = generateCommon(ClassBuilderFactories.TEST); generationState = generateCommon(ClassBuilderFactories.TEST, myEnvironment, myFiles);
if (DxChecker.RUN_DX_CHECKER) { if (DxChecker.RUN_DX_CHECKER) {
DxChecker.check(generationState.getFactory()); DxChecker.check(generationState.getFactory());