New J2K: Fix adding JvmOverloads annotation in DefaultArgumentsConversion
This commit is contained in:
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
|
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
|
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)
|
return recurse(element)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun JKMethod.hasParametersWithDefaultValues() =
|
||||||
|
parameters.any { it.initializer !is JKStubExpression }
|
||||||
|
|
||||||
private fun lookupCall(statement: JKStatement): JKMethodCallExpression? {
|
private fun lookupCall(statement: JKStatement): JKMethodCallExpression? {
|
||||||
val expression = when (statement) {
|
val expression = when (statement) {
|
||||||
|
|||||||
Reference in New Issue
Block a user