Generate not-null assertions on extension receiver parameters

This commit is contained in:
Alexander Udalov
2015-02-02 15:53:04 +03:00
parent 39c9216edc
commit 5c2d0c6173
6 changed files with 83 additions and 15 deletions
@@ -22,6 +22,8 @@ import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.analyzer.AnalysisResult;
import org.jetbrains.kotlin.codegen.state.GenerationState;
import org.jetbrains.kotlin.codegen.state.Progress;
import org.jetbrains.kotlin.diagnostics.DiagnosticSink;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
@@ -58,8 +60,12 @@ public class GenerationUtils {
@NotNull List<JetFile> files
) {
analysisResult.throwIfError();
GenerationState state = new GenerationState(project, ClassBuilderFactories.TEST, analysisResult.getModuleDescriptor(),
analysisResult.getBindingContext(), files);
GenerationState state = new GenerationState(
project, ClassBuilderFactories.TEST, Progress.DEAF,
analysisResult.getModuleDescriptor(), analysisResult.getBindingContext(),
files, false, false, GenerationState.GenerateClassFilter.GENERATE_ALL,
false, false, null, null, DiagnosticSink.DO_NOTHING, null
);
KotlinCodegenFacade.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION);
return state;
}
@@ -30,7 +30,7 @@ import java.util.regex.Pattern;
@SuppressWarnings("all")
@TestMetadata("compiler/testData/codegen/boxWithJava")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({BlackBoxWithJavaCodegenTestGenerated.BuiltinStubMethods.class, BlackBoxWithJavaCodegenTestGenerated.PlatformStatic.class, BlackBoxWithJavaCodegenTestGenerated.Properties.class})
@InnerTestClasses({BlackBoxWithJavaCodegenTestGenerated.BuiltinStubMethods.class, BlackBoxWithJavaCodegenTestGenerated.NotNullAssertions.class, BlackBoxWithJavaCodegenTestGenerated.PlatformStatic.class, BlackBoxWithJavaCodegenTestGenerated.Properties.class})
@RunWith(JUnit3RunnerWithInners.class)
public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
public void testAllFilesPresentInBoxWithJava() throws Exception {
@@ -84,6 +84,23 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege
}
@TestMetadata("compiler/testData/codegen/boxWithJava/notNullAssertions")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({})
@RunWith(JUnit3RunnerWithInners.class)
public static class NotNullAssertions extends AbstractBlackBoxCodegenTest {
public void testAllFilesPresentInNotNullAssertions() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxWithJava/notNullAssertions"), Pattern.compile("^([^\\.]+)$"), true);
}
@TestMetadata("extensionReceiverParameter")
public void testExtensionReceiverParameter() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/notNullAssertions/extensionReceiverParameter/");
doTestWithJava(fileName);
}
}
@TestMetadata("compiler/testData/codegen/boxWithJava/platformStatic")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({})