diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt index a569b31d9ab..75184f1f264 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt @@ -58,11 +58,11 @@ fun KaptContext.doAnnotationProcessing( return } + val initProcessAnnotationsMethod = JavaCompiler::class.java.declaredMethods.single { it.name == "initProcessAnnotations" } if (isJava9OrLater()) { - val initProcessAnnotationsMethod = JavaCompiler::class.java.declaredMethods.single { it.name == "initProcessAnnotations" } initProcessAnnotationsMethod.invoke(compiler, wrappedProcessors, emptyList(), emptyList()) } else { - compiler.initProcessAnnotations(wrappedProcessors) + initProcessAnnotationsMethod.invoke(compiler, wrappedProcessors) } if (logger.isVerbose) { @@ -92,7 +92,9 @@ fun KaptContext.doAnnotationProcessing( processAnnotationsMethod.invoke(compiler, analyzedFiles, additionalClassNames) compiler } else { - compiler.processAnnotations(analyzedFiles, additionalClassNames) + val processAnnotationsMethod = + compiler.javaClass.getMethod("processAnnotations", JavacList::class.java, JavacList::class.java) + processAnnotationsMethod.invoke(compiler, analyzedFiles, additionalClassNames) as JavaCompiler } } catch (e: AnnotationProcessingError) { throw KaptBaseError(KaptBaseError.Kind.EXCEPTION, e.cause ?: e) diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt index 3085f66dfe7..af5d6c2aa00 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt @@ -263,7 +263,15 @@ private fun JCDiagnostic.Factory.errorJava9Aware( errorMethod.invoke(this, JCDiagnostic.DiagnosticFlag.MANDATORY, source, pos, key, args) as JCDiagnostic } else { - this.error(source, pos, key, *args) + val errorMethod = this::class.java.getDeclaredMethod( + "error", + DiagnosticSource::class.java, + JCDiagnostic.DiagnosticPosition::class.java, + String::class.java, + Array::class.java + ) + + errorMethod.invoke(this, source, pos, key, args) as JCDiagnostic } } diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/util/java9Utils.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/util/java9Utils.kt index d5d8e015740..090c6f94a29 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/util/java9Utils.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/util/java9Utils.kt @@ -52,7 +52,8 @@ fun TreeMaker.TopLevelJava9Aware(packageClause: JCTree.JCExpression?, declaratio val allDeclarations = if (packageDecl != null) JavacList.of(packageDecl) + declarations else declarations topLevelMethod.invoke(this, allDeclarations) as JCTree.JCCompilationUnit } else { - TopLevel(JavacList.nil(), packageClause, declarations) + val topLevelMethod = TreeMaker::class.java.declaredMethods.single { it.name == "TopLevel" } + topLevelMethod.invoke(this, JavacList.nil(), packageClause, declarations) as JCTree.JCCompilationUnit } } @@ -60,6 +61,6 @@ fun JCTree.JCCompilationUnit.getPackageNameJava9Aware(): JCTree? { return if (isJava9OrLater()) { JCTree.JCCompilationUnit::class.java.getDeclaredMethod("getPackageName").invoke(this) as JCTree? } else { - this.packageName + this.packageName as JCTree? } } \ No newline at end of file