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) %}