Mark dynamic calls in tests

This commit is contained in:
Andrey Breslav
2014-11-13 21:03:37 +03:00
parent c8029307fa
commit 4f3158abb3
8 changed files with 102 additions and 7 deletions
@@ -78,6 +78,8 @@ public abstract class BaseDiagnosticsTest extends
public static final String CHECK_LAZY_LOG_DIRECTIVE = "CHECK_LAZY_LOG";
public static final boolean CHECK_LAZY_LOG_DEFAULT = "true".equals(System.getProperty("check.lazy.logs", "false"));
public static final String MARK_DYNAMIC_CALLS_DIRECTIVE = "MARK_DYNAMIC_CALLS";
@Override
protected TestModule createTestModule(@NotNull String name) {
return new TestModule(name);
@@ -240,6 +242,7 @@ public abstract class BaseDiagnosticsTest extends
private final boolean declareCheckType;
private final boolean declareFlexibleType;
public final boolean checkLazyLog;
private final boolean markDynamicCalls;
public TestFile(
@Nullable TestModule module,
@@ -252,6 +255,7 @@ public abstract class BaseDiagnosticsTest extends
this.checkLazyLog = directives.containsKey(CHECK_LAZY_LOG_DIRECTIVE) || CHECK_LAZY_LOG_DEFAULT;
this.declareCheckType = directives.containsKey(CHECK_TYPE_DIRECTIVE);
this.declareFlexibleType = directives.containsKey(EXPLICIT_FLEXIBLE_TYPES_DIRECTIVE);
this.markDynamicCalls = directives.containsKey(MARK_DYNAMIC_CALLS_DIRECTIVE);
if (fileName.endsWith(".java")) {
PsiFileFactory.getInstance(getProject()).createFileFromText(fileName, JavaLanguage.INSTANCE, textWithMarkers);
// TODO: check there's not syntax errors
@@ -334,7 +338,7 @@ public abstract class BaseDiagnosticsTest extends
final boolean[] ok = { true };
List<Diagnostic> diagnostics = ContainerUtil.filter(
KotlinPackage.plus(CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, jetFile),
KotlinPackage.plus(CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, jetFile, markDynamicCalls),
jvmSignatureDiagnostics),
whatDiagnosticsToConsider
);
@@ -147,7 +147,7 @@ public class CheckerTestUtilTest extends JetLiteFixture {
(JetFile) psiFile)
.getBindingContext();
String expectedText = CheckerTestUtil.addDiagnosticMarkersToText(psiFile, CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, psiFile)).toString();
String expectedText = CheckerTestUtil.addDiagnosticMarkersToText(psiFile, CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, psiFile, false)).toString();
List<DiagnosedRange> diagnosedRanges = Lists.newArrayList();
CheckerTestUtil.parseDiagnosedRanges(expectedText, diagnosedRanges);
@@ -155,7 +155,7 @@ public class CheckerTestUtilTest extends JetLiteFixture {
diagnosedRange.setFile(psiFile);
}
List<Diagnostic> diagnostics = CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, psiFile);
List<Diagnostic> diagnostics = CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, psiFile, false);
Collections.sort(diagnostics, CheckerTestUtil.DIAGNOSTIC_COMPARATOR);
makeTestData(diagnostics, diagnosedRanges);
@@ -3746,6 +3746,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("extensions.kt")
public void testExtensions() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dynamicTypes/extensions.kt");
doTest(fileName);
}
@TestMetadata("implicitDynamicReceiver.kt")
public void testImplicitDynamicReceiver() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dynamicTypes/implicitDynamicReceiver.kt");