New J2K: Fix adding JvmOverloads annotation in DefaultArgumentsConversion

This commit is contained in:
Ilya Kirillov
2019-01-18 13:58:35 +03:00
committed by Ilya Kirillov
parent 962b971f07
commit e4c15c3fb9
@@ -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) {