Kotlin: @JvmOverloads for methods with any default parameters.
Bug: b/444157761
Change-Id: I02375cfb87c37e094760ce81168966f802ba8cef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/266415
Reviewed-by: Jim Blackler <jimblackler@google.com>
Commit-Queue: Jim Blackler <jimblackler@google.com>
Reviewed-by: Nikita Gupta <nikigupta@google.com>
diff --git a/generator/templates/art/api_kotlin_object.kt b/generator/templates/art/api_kotlin_object.kt
index a07c6df..4c0cc23 100644
--- a/generator/templates/art/api_kotlin_object.kt
+++ b/generator/templates/art/api_kotlin_object.kt
@@ -38,6 +38,11 @@
{% for method in obj.methods if include_method(method) %}
@FastNative
@JvmName("{{ method.name.camelCase() }}")
+ {% for arg in kotlin_record_members(method.arguments) %}
+ {% if arg.type.category == 'callback function' or kotlin_default(arg) is not none %}
+ @JvmOverloads
+ {% break %}{% endif %}
+ {% endfor %}
{{ kotlin_annotation(kotlin_return(method)) }} public external fun {{ method.name.camelCase() }}(
//* TODO(b/341923892): rework async methods to use futures.
{%- for arg in kotlin_record_members(method.arguments) %}