From e4c15c3fb9744c1492c23981cd153223d9a3f629 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 18 Jan 2019 13:58:35 +0300 Subject: [PATCH] New J2K: Fix adding JvmOverloads annotation in DefaultArgumentsConversion --- .../j2k/conversions/DefaultArgumentsConversion.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/DefaultArgumentsConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/DefaultArgumentsConversion.kt index 9d581c9003c..096619a4d03 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/DefaultArgumentsConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/DefaultArgumentsConversion.kt @@ -82,18 +82,22 @@ class DefaultArgumentsConversion(private val context: ConversionContext) : Recur parameter.initializer = remapParameterSymbol(defaultValue) as JKExpression } - if (calledMethod.visibility == Visibility.PUBLIC && - !calledMethod.annotationList.annotations.any { it.classSymbol.fqName == "kotlin.annotation.AnnotationTarget.JvmOverloads" } - ) { - calledMethod.annotationList.annotations += jvmAnnotation("JvmOverloads", context.symbolProvider) - } element.classBody.declarations -= method } + for (method in element.declarationList) { + if (method !is JKMethod) continue + if (method.hasParametersWithDefaultValues() && (method.visibility == Visibility.PUBLIC || method.visibility == Visibility.INTERNAL)) { + method.annotationList.annotations += jvmAnnotation("JvmOverloads", context.symbolProvider) + } + } + return recurse(element) } + private fun JKMethod.hasParametersWithDefaultValues() = + parameters.any { it.initializer !is JKStubExpression } private fun lookupCall(statement: JKStatement): JKMethodCallExpression? { val expression = when (statement) {