public void testNoWarningsOnJavaKotlinInheritance() throws Exception {
    // This test checks that there are no PARAMETER_NAME_CHANGED_ON_OVERRIDE or
    // DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES
    // warnings when subclassing in Kotlin from Java binaries (in case when no parameter names are
    // available for Java classes)

    KotlinTestUtils.compileJavaFiles(
        Collections.singletonList(getTestDataFileWithExtension("java")),
        Arrays.asList("-d", tmpdir.getPath()));

    Project project = createEnvironment(Collections.singletonList(tmpdir)).getProject();

    AnalysisResult result =
        JvmResolveUtil.analyzeOneFileWithJavaIntegration(
            KotlinTestUtils.loadJetFile(project, getTestDataFileWithExtension("kt")));
    result.throwIfError();

    BindingContext bindingContext = result.getBindingContext();
    AnalyzerWithCompilerReport.Companion.reportDiagnostics(
        bindingContext.getDiagnostics(), PrintingMessageCollector.PLAIN_TEXT_TO_SYSTEM_ERR);

    assertEquals(
        "There should be no diagnostics", 0, Iterables.size(bindingContext.getDiagnostics()));
  }
Пример #2
0
 @NotNull
 public static List<Diagnostic> getDiagnosticsIncludingSyntaxErrors(
     @NotNull BindingContext bindingContext,
     @NotNull final PsiElement root,
     boolean markDynamicCalls,
     @Nullable List<DeclarationDescriptor> dynamicCallDescriptors) {
   List<Diagnostic> diagnostics = new ArrayList<Diagnostic>();
   diagnostics.addAll(
       Collections2.filter(
           bindingContext.getDiagnostics().all(),
           new Predicate<Diagnostic>() {
             @Override
             public boolean apply(Diagnostic diagnostic) {
               return PsiTreeUtil.isAncestor(root, diagnostic.getPsiElement(), false);
             }
           }));
   for (PsiErrorElement errorElement : AnalyzingUtils.getSyntaxErrorRanges(root)) {
     diagnostics.add(new SyntaxErrorDiagnostic(errorElement));
   }
   List<Diagnostic> debugAnnotations =
       getDebugInfoDiagnostics(root, bindingContext, markDynamicCalls, dynamicCallDescriptors);
   diagnostics.addAll(debugAnnotations);
   return diagnostics;
 }