diff --git a/harness/tests/scripts/CopyModificationCheckTestClass.gdj b/harness/tests/scripts/CopyModificationCheckTestClass.gdj index 40eb142e6f..4d88fbf113 100644 --- a/harness/tests/scripts/CopyModificationCheckTestClass.gdj +++ b/harness/tests/scripts/CopyModificationCheckTestClass.gdj @@ -10,6 +10,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/CoreTypePropertyChecks.gdj b/harness/tests/scripts/CoreTypePropertyChecks.gdj index d742528b27..11a7a56363 100644 --- a/harness/tests/scripts/CoreTypePropertyChecks.gdj +++ b/harness/tests/scripts/CoreTypePropertyChecks.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/ScriptInOtherSourceDir.gdj b/harness/tests/scripts/ScriptInOtherSourceDir.gdj index 8bb77d1d56..ef08a811b3 100644 --- a/harness/tests/scripts/ScriptInOtherSourceDir.gdj +++ b/harness/tests/scripts/ScriptInOtherSourceDir.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/dependencies/flattened-library-tests/godot/tests/library/flattened/FLSimple.gdj b/harness/tests/scripts/dependencies/flattened-library-tests/godot/tests/library/flattened/FLSimple.gdj index 5d59117fc0..e885917fdf 100644 --- a/harness/tests/scripts/dependencies/flattened-library-tests/godot/tests/library/flattened/FLSimple.gdj +++ b/harness/tests/scripts/dependencies/flattened-library-tests/godot/tests/library/flattened/FLSimple.gdj @@ -10,6 +10,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimple.gdj b/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimple.gdj index f284daf421..967c20f11f 100644 --- a/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimple.gdj +++ b/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimple.gdj @@ -10,6 +10,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimpleChild.gdj b/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimpleChild.gdj index a31695e1ce..520bbb6ae5 100644 --- a/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimpleChild.gdj +++ b/harness/tests/scripts/dependencies/fqname-library-tests/godot/tests/library/fqname/godot_tests_library_fqname_FQNLSimpleChild.gdj @@ -11,6 +11,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/dependencies/hierarchical-library-tests/godot/tests/library/hierarchical/HLSimple.gdj b/harness/tests/scripts/dependencies/hierarchical-library-tests/godot/tests/library/hierarchical/HLSimple.gdj index 63855a6d32..e4673e1e29 100644 --- a/harness/tests/scripts/dependencies/hierarchical-library-tests/godot/tests/library/hierarchical/HLSimple.gdj +++ b/harness/tests/scripts/dependencies/hierarchical-library-tests/godot/tests/library/hierarchical/HLSimple.gdj @@ -10,6 +10,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/CoreTypesIdentityTest.gdj b/harness/tests/scripts/godot/tests/CoreTypesIdentityTest.gdj index 0d993a3553..440ed0a165 100644 --- a/harness/tests/scripts/godot/tests/CoreTypesIdentityTest.gdj +++ b/harness/tests/scripts/godot/tests/CoreTypesIdentityTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/FuncRefTest.gdj b/harness/tests/scripts/godot/tests/FuncRefTest.gdj index 8c7ab3880e..a3f8c22f77 100644 --- a/harness/tests/scripts/godot/tests/FuncRefTest.gdj +++ b/harness/tests/scripts/godot/tests/FuncRefTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/Invocation.gdj b/harness/tests/scripts/godot/tests/Invocation.gdj index 1de7614948..4ea41578f1 100644 --- a/harness/tests/scripts/godot/tests/Invocation.gdj +++ b/harness/tests/scripts/godot/tests/Invocation.gdj @@ -10,6 +10,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ @@ -40,6 +42,7 @@ properties = [ nav_meshes_dictionary, nullable_dictionary, color, + rid, packed_byte_array, packed_int32_array, packed_float64_array, diff --git a/harness/tests/scripts/godot/tests/JavaTestClass.gdj b/harness/tests/scripts/godot/tests/JavaTestClass.gdj index 2ac65467a3..98d3d68127 100644 --- a/harness/tests/scripts/godot/tests/JavaTestClass.gdj +++ b/harness/tests/scripts/godot/tests/JavaTestClass.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ @@ -30,7 +32,8 @@ properties = [ dictionary ] functions = [ - greeting, + _ready, + greeting, connect_and_trigger_signal, signal_callback ] \ No newline at end of file diff --git a/harness/tests/scripts/godot/tests/LambdaCallableTest.gdj b/harness/tests/scripts/godot/tests/LambdaCallableTest.gdj index 4178cad6dc..d9bda84e34 100644 --- a/harness/tests/scripts/godot/tests/LambdaCallableTest.gdj +++ b/harness/tests/scripts/godot/tests/LambdaCallableTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/MultiArgsConstructorTest.gdj b/harness/tests/scripts/godot/tests/MultiArgsConstructorTest.gdj index 26baeb00e1..b4246889da 100644 --- a/harness/tests/scripts/godot/tests/MultiArgsConstructorTest.gdj +++ b/harness/tests/scripts/godot/tests/MultiArgsConstructorTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/args/ConstructorArgSizeTest.gdj b/harness/tests/scripts/godot/tests/args/ConstructorArgSizeTest.gdj index 367f40b851..c4e08ef098 100644 --- a/harness/tests/scripts/godot/tests/args/ConstructorArgSizeTest.gdj +++ b/harness/tests/scripts/godot/tests/args/ConstructorArgSizeTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/args/FunctionArgSizeTest.gdj b/harness/tests/scripts/godot/tests/args/FunctionArgSizeTest.gdj index 6b3fdc6b22..c3cd4d7263 100644 --- a/harness/tests/scripts/godot/tests/args/FunctionArgSizeTest.gdj +++ b/harness/tests/scripts/godot/tests/args/FunctionArgSizeTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/binding/BindingA.gdj b/harness/tests/scripts/godot/tests/binding/BindingA.gdj index 650862312f..7f35e26fab 100644 --- a/harness/tests/scripts/godot/tests/binding/BindingA.gdj +++ b/harness/tests/scripts/godot/tests/binding/BindingA.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/binding/BindingB.gdj b/harness/tests/scripts/godot/tests/binding/BindingB.gdj index 835653d863..0e01a844ea 100644 --- a/harness/tests/scripts/godot/tests/binding/BindingB.gdj +++ b/harness/tests/scripts/godot/tests/binding/BindingB.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/binding/BindingTest.gdj b/harness/tests/scripts/godot/tests/binding/BindingTest.gdj index ddbb8751d2..53b5c884f9 100644 --- a/harness/tests/scripts/godot/tests/binding/BindingTest.gdj +++ b/harness/tests/scripts/godot/tests/binding/BindingTest.gdj @@ -8,6 +8,8 @@ baseType = Object supertypes = [ godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/callable/CallableMethodBindTest.gdj b/harness/tests/scripts/godot/tests/callable/CallableMethodBindTest.gdj index d1eabcfd8e..705e5e0e97 100644 --- a/harness/tests/scripts/godot/tests/callable/CallableMethodBindTest.gdj +++ b/harness/tests/scripts/godot/tests/callable/CallableMethodBindTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/constructor/ConstructorRegistrationTest.gdj b/harness/tests/scripts/godot/tests/constructor/ConstructorRegistrationTest.gdj index 6fe8bbe92b..5f96ddcc4c 100644 --- a/harness/tests/scripts/godot/tests/constructor/ConstructorRegistrationTest.gdj +++ b/harness/tests/scripts/godot/tests/constructor/ConstructorRegistrationTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/coretypes/BasisTest.gdj b/harness/tests/scripts/godot/tests/coretypes/BasisTest.gdj index f182a2643f..92b125982d 100644 --- a/harness/tests/scripts/godot/tests/coretypes/BasisTest.gdj +++ b/harness/tests/scripts/godot/tests/coretypes/BasisTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/coretypes/StringTest.gdj b/harness/tests/scripts/godot/tests/coretypes/StringTest.gdj index 7711eb6511..b376cfa98b 100644 --- a/harness/tests/scripts/godot/tests/coretypes/StringTest.gdj +++ b/harness/tests/scripts/godot/tests/coretypes/StringTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/coretypes/Vector3Test.gdj b/harness/tests/scripts/godot/tests/coretypes/Vector3Test.gdj index 8b4092d6b3..12ea142dd7 100644 --- a/harness/tests/scripts/godot/tests/coretypes/Vector3Test.gdj +++ b/harness/tests/scripts/godot/tests/coretypes/Vector3Test.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/coroutine/CoroutineTest.gdj b/harness/tests/scripts/godot/tests/coroutine/CoroutineTest.gdj index dc6cd3ea27..e9b2f339a0 100644 --- a/harness/tests/scripts/godot/tests/coroutine/CoroutineTest.gdj +++ b/harness/tests/scripts/godot/tests/coroutine/CoroutineTest.gdj @@ -8,6 +8,8 @@ baseType = Object supertypes = [ godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ @@ -18,7 +20,9 @@ signals = [ async_load_resource_finished ] properties = [ - step + step, + was_child_cancelled, + was_parent_cancelled ] functions = [ start_coroutine_without_parameter, @@ -28,5 +32,6 @@ functions = [ start_coroutine_with_physics_frame, start_coroutine_with_process_frame, run_on_main_thread_from_background_thread, - async_load_resource + async_load_resource, + cancel_coroutine ] \ No newline at end of file diff --git a/harness/tests/scripts/godot/tests/exception/ExceptionTest.gdj b/harness/tests/scripts/godot/tests/exception/ExceptionTest.gdj index cd765a671f..bc6e596e61 100644 --- a/harness/tests/scripts/godot/tests/exception/ExceptionTest.gdj +++ b/harness/tests/scripts/godot/tests/exception/ExceptionTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceChild.gdj b/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceChild.gdj index 1063c448af..cf44fb09b1 100644 --- a/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceChild.gdj +++ b/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceChild.gdj @@ -10,6 +10,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceEmptyChild.gdj b/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceEmptyChild.gdj index 6416d58c84..941152fd57 100644 --- a/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceEmptyChild.gdj +++ b/harness/tests/scripts/godot/tests/inheritance/AbstractClassInheritanceEmptyChild.gdj @@ -14,6 +14,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceChild.gdj b/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceChild.gdj index 93c2965ad0..3f82b5c4b5 100644 --- a/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceChild.gdj +++ b/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceChild.gdj @@ -10,6 +10,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceParent.gdj b/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceParent.gdj index a1c84dd50e..d28210ed69 100644 --- a/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceParent.gdj +++ b/harness/tests/scripts/godot/tests/inheritance/ClassInheritanceParent.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/instance/NodeInstance.gdj b/harness/tests/scripts/godot/tests/instance/NodeInstance.gdj index dd9f678356..7ff58a8426 100644 --- a/harness/tests/scripts/godot/tests/instance/NodeInstance.gdj +++ b/harness/tests/scripts/godot/tests/instance/NodeInstance.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/instance/ObjectInstance.gdj b/harness/tests/scripts/godot/tests/instance/ObjectInstance.gdj index b1e115d7b5..0a465357ec 100644 --- a/harness/tests/scripts/godot/tests/instance/ObjectInstance.gdj +++ b/harness/tests/scripts/godot/tests/instance/ObjectInstance.gdj @@ -8,6 +8,8 @@ baseType = Object supertypes = [ godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/instance/RefCountedInstance.gdj b/harness/tests/scripts/godot/tests/instance/RefCountedInstance.gdj index 81fcc0d65f..85d35716b4 100644 --- a/harness/tests/scripts/godot/tests/instance/RefCountedInstance.gdj +++ b/harness/tests/scripts/godot/tests/instance/RefCountedInstance.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.RefCounted, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/packedarray/PackedArrayTest.gdj b/harness/tests/scripts/godot/tests/packedarray/PackedArrayTest.gdj index f25d0d4810..c2cfb09db2 100644 --- a/harness/tests/scripts/godot/tests/packedarray/PackedArrayTest.gdj +++ b/harness/tests/scripts/godot/tests/packedarray/PackedArrayTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/reflection/BaseReflectionTest.gdj b/harness/tests/scripts/godot/tests/reflection/BaseReflectionTest.gdj index 2c90f1172a..d2c87bc4dc 100644 --- a/harness/tests/scripts/godot/tests/reflection/BaseReflectionTest.gdj +++ b/harness/tests/scripts/godot/tests/reflection/BaseReflectionTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/reflection/GH571_ReflectionTest.gdj b/harness/tests/scripts/godot/tests/reflection/GH571_ReflectionTest.gdj index b8921ff375..fe43538c65 100644 --- a/harness/tests/scripts/godot/tests/reflection/GH571_ReflectionTest.gdj +++ b/harness/tests/scripts/godot/tests/reflection/GH571_ReflectionTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/registration/TypedVariantArrayRegistration.gdj b/harness/tests/scripts/godot/tests/registration/TypedVariantArrayRegistration.gdj index 313183d893..764795e060 100644 --- a/harness/tests/scripts/godot/tests/registration/TypedVariantArrayRegistration.gdj +++ b/harness/tests/scripts/godot/tests/registration/TypedVariantArrayRegistration.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/rpctests/RPCTests.gdj b/harness/tests/scripts/godot/tests/rpctests/RPCTests.gdj index 747e93e4a0..ccd0f411ac 100644 --- a/harness/tests/scripts/godot/tests/rpctests/RPCTests.gdj +++ b/harness/tests/scripts/godot/tests/rpctests/RPCTests.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/signal/SignalTest.gdj b/harness/tests/scripts/godot/tests/signal/SignalTest.gdj index 040698790e..b36f9aa7ce 100644 --- a/harness/tests/scripts/godot/tests/signal/SignalTest.gdj +++ b/harness/tests/scripts/godot/tests/signal/SignalTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/static/CallStaticTest.gdj b/harness/tests/scripts/godot/tests/static/CallStaticTest.gdj index 9298c6c1bb..26f019fa48 100644 --- a/harness/tests/scripts/godot/tests/static/CallStaticTest.gdj +++ b/harness/tests/scripts/godot/tests/static/CallStaticTest.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/scripts/godot/tests/subpackage/OtherScript.gdj b/harness/tests/scripts/godot/tests/subpackage/OtherScript.gdj index 6019c3ec5a..d9a37688a1 100644 --- a/harness/tests/scripts/godot/tests/subpackage/OtherScript.gdj +++ b/harness/tests/scripts/godot/tests/subpackage/OtherScript.gdj @@ -9,6 +9,8 @@ supertypes = [ godot.Node, godot.Object, godot.core.KtObject, + godot.common.interop.IdentityPointer, + godot.common.interop.ValuePointer, kotlin.Any ] signals = [ diff --git a/harness/tests/src/main/kotlin/godot/tests/coroutine/CoroutineTest.kt b/harness/tests/src/main/kotlin/godot/tests/coroutine/CoroutineTest.kt index e279554dbc..8cdc22f736 100644 --- a/harness/tests/src/main/kotlin/godot/tests/coroutine/CoroutineTest.kt +++ b/harness/tests/src/main/kotlin/godot/tests/coroutine/CoroutineTest.kt @@ -4,6 +4,7 @@ package godot.tests.coroutine import godot.Object import godot.PackedScene import godot.ResourceLoader +import godot.Timer import godot.annotation.RegisterClass import godot.annotation.RegisterFunction import godot.annotation.RegisterProperty @@ -20,6 +21,8 @@ import godot.coroutines.awaitProcessFrame import godot.coroutines.godotCoroutine import godot.global.GD import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.async +import kotlinx.coroutines.delay @RegisterClass class CoroutineTest : Object() { @@ -36,6 +39,12 @@ class CoroutineTest : Object() { @RegisterProperty var step: Int = 0 + @RegisterProperty + var wasChildCancelled = false + + @RegisterProperty + var wasParentCancelled = true + @RegisterFunction fun startCoroutineWithoutParameter() = godotCoroutine { step = 1 @@ -126,4 +135,19 @@ class CoroutineTest : Object() { } } } + + @RegisterFunction + fun cancelCoroutine() = godotCoroutine { + val timer = Timer() + timer.autostart = true + val job = async { + timer.start(3.0) + timer.timeout.await() + } + delay(1000) + timer.queueFree() + delay(1000) + wasChildCancelled = job.isCancelled + wasParentCancelled = false + } } diff --git a/harness/tests/test/unit/test_coroutines.gd b/harness/tests/test/unit/test_coroutines.gd index c0713a2bf8..7059bc9a59 100644 --- a/harness/tests/test/unit/test_coroutines.gd +++ b/harness/tests/test/unit/test_coroutines.gd @@ -52,6 +52,11 @@ func test_coroutine_await(): test_script.async_load_resource() var async_load_resource_success = await test_script.async_load_resource_finished assert_true(async_load_resource_success, "Resource should be loaded") + + test_script.cancel_coroutine() + await get_tree().create_timer(4).timeout + assert_true(test_script.was_child_cancelled, "Coroutine children should have been cancelled") + assert_false(test_script.was_parent_cancelled, "Coroutine parent should not have been cancelled") await get_tree().create_timer(1).timeout test_script.free() diff --git a/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/AwaitGenerationService.kt b/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/AwaitGenerationService.kt index 59812956fc..5d7a4f71da 100644 --- a/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/AwaitGenerationService.kt +++ b/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/AwaitGenerationService.kt @@ -13,6 +13,7 @@ import com.squareup.kotlinpoet.TypeSpec import com.squareup.kotlinpoet.TypeVariableName import com.squareup.kotlinpoet.UNIT import godot.codegen.services.IAwaitGenerationService +import godot.tools.common.constants.AS_CALLABLE_UTIL_FUNCTION import godot.tools.common.constants.GODOT_OBJECT import godot.tools.common.constants.GodotKotlinJvmTypes.signal import godot.tools.common.constants.godotCorePackage @@ -22,8 +23,9 @@ import godot.tools.common.constants.kotlinxCoroutinePackage private val cancellableContinuationClass = ClassName(kotlinxCoroutinePackage, "CancellableContinuation") private val suspendCancellableCoroutine = MemberName(kotlinxCoroutinePackage, "suspendCancellableCoroutine") -private val connect = MemberName(godotCorePackage, "connectThreadSafe") +private const val connectThreadSafe = "connectThreadSafe" private val resume = MemberName(kotlinCoroutinePackage, "resume") +private const val cancel = "cancel" object AwaitGenerationService : IAwaitGenerationService { override fun generate(maxArgumentCount: Int): FileSpec { @@ -120,14 +122,26 @@ object AwaitGenerationService : IAwaitGenerationService { 1 -> lambdaParameters else -> "SignalArguments$argCount($lambdaParameters)" } + val lambdaParametersWithType = buildString { + for (i in 0 until argCount) { + if (i != 0) { + append(",·") + } + append("p$i:·P$i") + } + } return this .beginControlFlow("return·%M", suspendCancellableCoroutine) .addStatement("cont:·%T<%T>·->", cancellableContinuationClass, returnType) - .beginControlFlow("%M(%T.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())", connect, GODOT_OBJECT) - .addStatement("$lambdaParameters·->") + .beginControlFlow("%L(", connectThreadSafe) + .addStatement("$lambdaParametersWithType·->") .addStatement("cont.%M($resumeParameters)", resume) .endControlFlow() + .beginControlFlow(".%M", AS_CALLABLE_UTIL_FUNCTION) + .addStatement("cont.%L()", cancel) + .endControlFlow() + .addCode(",·%T.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())", GODOT_OBJECT) .endControlFlow() } } diff --git a/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/LambdaCallableGenerationService.kt b/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/LambdaCallableGenerationService.kt index fa45662f2d..7e448b85bc 100644 --- a/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/LambdaCallableGenerationService.kt +++ b/kt/api-generator/src/main/kotlin/godot/codegen/services/impl/LambdaCallableGenerationService.kt @@ -14,6 +14,7 @@ import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy import com.squareup.kotlinpoet.PropertySpec import com.squareup.kotlinpoet.TypeSpec import com.squareup.kotlinpoet.TypeVariableName +import com.squareup.kotlinpoet.UNIT import godot.codegen.services.ILambdaCallableGenerationService import godot.codegen.utils.GenericClassNameInfo import godot.tools.common.constants.GodotFunctions @@ -25,21 +26,21 @@ class LambdaCallableGenerationService : ILambdaCallableGenerationService { override fun generate(maxArgumentCount: Int): FileSpec { val callableFileSpec = FileSpec.builder(godotCorePackage, "LambdaCallables") + val onDestroyCallLambdaType = LambdaTypeName.get(returnType = UNIT).copy(nullable = true) + for (argCount in 0..maxArgumentCount) { - val ktCallableClassName = ClassName(godotCorePackage, "$KT_CALLABLE_NAME$argCount") + val ktCallableClassName = ClassName(godotCorePackage, "$LAMBDA_CALLABLE_NAME$argCount") val classBuilder = TypeSpec .classBuilder(ktCallableClassName) .superclass( - KT_CALLABLE_CLASS_NAME + LAMBDA_CALLABLE_CLASS_NAME .parameterizedBy(returnTypeParameter) ) val argumentRange = 0.. -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { + connectThreadSafe( { -> cont.resume(Unit) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public suspend inline fun Signal1.await(): P0 = suspendCancellableCoroutine { cont: CancellableContinuation -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0 -> + connectThreadSafe( { + p0: P0 -> cont.resume(p0) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments2( public val p0: P0, @@ -51,11 +57,14 @@ public data class SignalArguments2( public suspend inline fun Signal2.await(): SignalArguments2 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1 -> + connectThreadSafe( { + p0: P0, p1: P1 -> cont.resume(SignalArguments2(p0, p1)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments3( public val p0: P0, @@ -66,11 +75,14 @@ public data class SignalArguments3( public suspend inline fun Signal3.await(): SignalArguments3 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2 -> cont.resume(SignalArguments3(p0, p1, p2)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments4( public val p0: P0, @@ -83,11 +95,14 @@ public suspend inline fun Signal4.await(): SignalArguments4 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3 -> cont.resume(SignalArguments4(p0, p1, p2, p3)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments5( public val p0: P0, @@ -101,11 +116,14 @@ public suspend inline fun .await(): SignalArguments5 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> cont.resume(SignalArguments5(p0, p1, p2, p3, p4)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments6( public val p0: P0, @@ -120,11 +138,14 @@ public suspend inline fun .await(): SignalArguments6 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> cont.resume(SignalArguments6(p0, p1, p2, p3, p4, p5)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments7( public val p0: P0, @@ -140,11 +161,14 @@ public suspend inline fun Signal7.await(): SignalArguments7 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> cont.resume(SignalArguments7(p0, p1, p2, p3, p4, p5, p6)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments8( public val p0: P0, @@ -161,11 +185,14 @@ public suspend inline fun Signal8.await(): SignalArguments8 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> cont.resume(SignalArguments8(p0, p1, p2, p3, p4, p5, p6, p7)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments9( public val p0: P0, @@ -183,11 +210,14 @@ public suspend inline fun Signal9.await(): SignalArguments9 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> cont.resume(SignalArguments9(p0, p1, p2, p3, p4, p5, p6, p7, p8)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments10( public val p0: P0, @@ -207,11 +237,14 @@ public suspend inline fun .await(): SignalArguments10 = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> cont.resume(SignalArguments10(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments11( public val p0: P0, @@ -233,11 +266,14 @@ public suspend inline fun = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> cont.resume(SignalArguments11(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments12( public val p0: P0, @@ -260,11 +296,14 @@ public suspend inline fun = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> cont.resume(SignalArguments12(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments13( public val p0: P0, @@ -288,11 +327,14 @@ public suspend inline fun = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12 -> cont.resume(SignalArguments13(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments14( public val p0: P0, @@ -317,11 +359,14 @@ public suspend inline fun = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13 -> cont.resume(SignalArguments14(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments15( @@ -349,11 +394,14 @@ public suspend inline fun = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13, p14: P14 -> cont.resume(SignalArguments15(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} public data class SignalArguments16( @@ -382,8 +430,11 @@ public suspend inline fun = suspendCancellableCoroutine { cont: CancellableContinuation> -> - connectThreadSafe(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 -> + connectThreadSafe( { + p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13, p14: P14, p15: P15 -> cont.resume(SignalArguments16(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)) } -} + .asCallable { + cont.cancel() + } + , Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt())} diff --git a/kt/godot-coroutine-library/src/main/kotlin/godot/coroutines/GodotDispatchers.kt b/kt/godot-coroutine-library/src/main/kotlin/godot/coroutines/GodotDispatchers.kt index e8974cb476..7aea4ae735 100644 --- a/kt/godot-coroutine-library/src/main/kotlin/godot/coroutines/GodotDispatchers.kt +++ b/kt/godot-coroutine-library/src/main/kotlin/godot/coroutines/GodotDispatchers.kt @@ -6,9 +6,9 @@ import godot.SceneTree import godot.WorkerThreadPool import godot.core.Callable import godot.core.asCallable -import godot.core.connect import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Runnable +import kotlinx.coroutines.cancel import kotlin.coroutines.CoroutineContext object GodotDispatchers { @@ -20,29 +20,31 @@ object GodotDispatchers { private object GodotMainThreadCoroutineDispatcher : CoroutineDispatcher() { override fun dispatch(context: CoroutineContext, block: Runnable) { - Callable({ block.run() }.asCallable()).callDeferred() + Callable({ block.run() }.asCallable { context.cancel() }).callDeferred() } } private object GodotThreadPoolCoroutineDispatcher : CoroutineDispatcher() { override fun dispatch(context: CoroutineContext, block: Runnable) { - WorkerThreadPool.addTask({ block.run() }.asCallable()) + WorkerThreadPool.addTask({ block.run() }.asCallable { context.cancel() }) } } private object GodotProcessFrameCoroutineDispatcher : CoroutineDispatcher() { override fun dispatch(context: CoroutineContext, block: Runnable) { - sceneTree.processFrame.connect(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - block.run() - } + sceneTree.processFrame.connect( + { block.run() }.asCallable { context.cancel() }, + Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt() + ) } } private object GodotPhysicsFrameCoroutineDispatcher : CoroutineDispatcher() { override fun dispatch(context: CoroutineContext, block: Runnable) { - sceneTree.physicsFrame.connect(Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt()) { - block.run() - } + sceneTree.physicsFrame.connect( + { block.run() }.asCallable { context.cancel() }, + Object.ConnectFlags.CONNECT_ONE_SHOT.id.toInt() + ) } } diff --git a/kt/godot-library/src/main/kotlin/godot/core/bridge/LambdaCallable.kt b/kt/godot-library/src/main/kotlin/godot/core/bridge/LambdaCallable.kt index c48d41284e..a7539362b2 100644 --- a/kt/godot-library/src/main/kotlin/godot/core/bridge/LambdaCallable.kt +++ b/kt/godot-library/src/main/kotlin/godot/core/bridge/LambdaCallable.kt @@ -7,6 +7,7 @@ import godot.common.interop.VoidPtr abstract class LambdaCallable( internal val variantConverter: VariantConverter, + internal val onCancelCall: (() -> Unit)?, vararg parameterTypes: VariantConverter ) : Callable { private val types: Array = parameterTypes.toList().toTypedArray() @@ -34,15 +35,27 @@ abstract class LambdaCallable( ret } + fun onCancel() = onCancelCall!!() + internal abstract fun invokeKt(): R internal companion object : ParametersReader() - internal fun wrapInCustomCallable(): VoidPtr = Bridge.wrap_in_custom_callable(this, variantConverter.id, hashCode()) + internal fun wrapInCustomCallable(): VoidPtr = Bridge.wrap_in_custom_callable( + this, + variantConverter.id, + hashCode(), + onCancelCall != null + ) @Suppress("FunctionName") private object Bridge { - external fun wrap_in_custom_callable(instance: LambdaCallable<*>, variantTypeOrdinal: Int, hashCode: Int): VoidPtr + external fun wrap_in_custom_callable( + instance: LambdaCallable<*>, + variantTypeOrdinal: Int, + hashCode: Int, + hasOnCancel: Boolean + ): VoidPtr } } diff --git a/kt/godot-library/src/main/kotlin/godot/core/bridge/NativeCallable.kt b/kt/godot-library/src/main/kotlin/godot/core/bridge/NativeCallable.kt index aeaa7f2c46..3dc36c7b14 100644 --- a/kt/godot-library/src/main/kotlin/godot/core/bridge/NativeCallable.kt +++ b/kt/godot-library/src/main/kotlin/godot/core/bridge/NativeCallable.kt @@ -31,7 +31,7 @@ class NativeCallable : NativeCoreType, Callable { internal constructor(lambdaCallable: LambdaCallable<*>) { // We pass all params using jni as we're often in a context of sending parameters to cpp, so we should not rewind buffer. - ptr = Bridge.engine_call_constructor_kt_custom_callable(lambdaCallable, lambdaCallable.variantConverter.id, lambdaCallable.hashCode()) + ptr = Bridge.engine_call_constructor_kt_custom_callable(lambdaCallable, lambdaCallable.variantConverter.id, lambdaCallable.hashCode(), lambdaCallable.onCancelCall != null) MemoryManager.registerNativeCoreType(this, VariantParser.CALLABLE) } @@ -147,7 +147,7 @@ class NativeCallable : NativeCoreType, Callable { object Bridge { external fun engine_call_constructor(): VoidPtr external fun engine_call_constructor_object_string_name(): VoidPtr - external fun engine_call_constructor_kt_custom_callable(callable: LambdaCallable<*>, variantTypeOrdinal: Int, hashCode: Int): VoidPtr + external fun engine_call_constructor_kt_custom_callable(callable: LambdaCallable<*>, variantTypeOrdinal: Int, hashCode: Int, hasOnCancel: Boolean): VoidPtr external fun engine_call_copy_constructor(): VoidPtr external fun engine_call_bind(_handle: VoidPtr) diff --git a/kt/godot-library/src/main/kotlin/godot/gen/godot/core/LambdaCallables.kt b/kt/godot-library/src/main/kotlin/godot/gen/godot/core/LambdaCallables.kt index 8fd661423d..f8f3b00f06 100644 --- a/kt/godot-library/src/main/kotlin/godot/gen/godot/core/LambdaCallables.kt +++ b/kt/godot-library/src/main/kotlin/godot/gen/godot/core/LambdaCallables.kt @@ -3,18 +3,13 @@ package godot.core import godot.core.VariantParser.NIL -import java.lang.Class -import kotlin.Any -import kotlin.PublishedApi -import kotlin.Suppress -import kotlin.jvm.JvmName -import kotlin.jvm.JvmStatic -import kotlin.jvm.`internal`.Reflection +import kotlin.jvm.internal.Reflection public class LambdaCallable0 @PublishedApi internal constructor( variantConverter: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: () -> R, -) : LambdaCallable(variantConverter) { +) : LambdaCallable(variantConverter, onCancelCall) { public override fun invokeKt(): R = function() public operator fun invoke(): R = function() @@ -25,27 +20,30 @@ public class LambdaCallable0 @PublishedApi internal constructor( @JvmStatic @JvmName("create") public fun javaCreate(returnClass: Class, function: () -> R) = - LambdaCallable0(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), function) + LambdaCallable0(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), null, function) } } -public inline fun callable0(noinline function: () -> R) = - LambdaCallable0(variantMapper.getOrDefault(R::class, NIL), function) +public inline fun callable0(noinline onCancelCall: (() -> Unit)? = null, noinline + function: () -> R) = + LambdaCallable0(variantMapper.getOrDefault(R::class, NIL), onCancelCall, function) -public inline fun (() -> R).asCallable() = callable0(this) +public inline fun (() -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = + callable0(onCancelCall, this) public class LambdaCallable1 @PublishedApi internal constructor( variantConverter: VariantConverter, p0Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: (p0: P0) -> R, -) : LambdaCallable(variantConverter, p0Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0) public operator fun invoke(p0: P0): R = function(p0) public override fun call(vararg args: Any?): Any? = function(args[0] as P0) - public fun bind(p0: P0) = LambdaCallable0(variantConverter) { -> function(p0) } + public fun bind(p0: P0) = LambdaCallable0(variantConverter, onCancelCall) { -> function(p0) } public companion object { @JvmStatic @@ -55,30 +53,35 @@ public class LambdaCallable1 @PublishedApi internal constructor( p0Class: Class, function: (p0: P0) -> R, ) = - LambdaCallable1(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, function) + LambdaCallable1(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, null, function) } } -public inline fun callable1(noinline function: (p0: P0) -> R) = - LambdaCallable1(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, function) +public inline fun callable1(noinline onCancelCall: (() -> Unit)? = null, + noinline function: (p0: P0) -> R) = + LambdaCallable1(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, onCancelCall, function) -public inline fun ((p0: P0) -> R).asCallable() = callable1(this) +public inline fun ((p0: P0) -> R).asCallable(noinline + onCancelCall: (() -> Unit)? = null) = callable1(onCancelCall, this) public class LambdaCallable2 @PublishedApi internal constructor( variantConverter: VariantConverter, private val p0Type: VariantConverter, p1Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: (p0: P0, p1: P1) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1) public operator fun invoke(p0: P0, p1: P1): R = function(p0, p1) public override fun call(vararg args: Any?): Any? = function(args[0] as P0, args[1] as P1) - public fun bind(p0: P0, p1: P1) = LambdaCallable0(variantConverter) { -> function(p0, p1) } + public fun bind(p0: P0, p1: P1) = + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1) } - public fun bind(p1: P1) = LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1) } + public fun bind(p1: P1) = + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1) } public companion object { @JvmStatic @@ -89,28 +92,29 @@ public class LambdaCallable2 @PublishedApi internal constructor( p1Class: Class, function: (p0: P0, p1: P1) -> R, ) = - LambdaCallable2(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, function) + LambdaCallable2(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, null, function) } } -public inline fun callable2(noinline function: (p0: P0, - p1: P1) -> R) = - LambdaCallable2(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, function) +public inline fun callable2(noinline onCancelCall: (() -> Unit)? + = null, noinline function: (p0: P0, p1: P1) -> R) = + LambdaCallable2(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, onCancelCall, function) -public inline fun ((p0: P0, p1: P1) -> R).asCallable() = - callable2(this) +public inline fun ((p0: P0, p1: P1) -> R).asCallable(noinline + onCancelCall: (() -> Unit)? = null) = callable2(onCancelCall, this) public class LambdaCallable3 @PublishedApi internal constructor( variantConverter: VariantConverter, private val p0Type: VariantConverter, private val p1Type: VariantConverter, p2Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, p2: P2, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2) @@ -127,13 +131,13 @@ public class LambdaCallable3 @PublishedApi internal constructor( p0: P0, p1: P1, p2: P2, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2) } + ) = LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2) } public fun bind(p1: P1, p2: P2) = - LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2) } public fun bind(p2: P2) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2) } public companion object { @JvmStatic @@ -149,22 +153,23 @@ public class LambdaCallable3 @PublishedApi internal constructor( p2: P2, ) -> R, ) = - LambdaCallable3(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, function) + LambdaCallable3(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, null, function) } } -public inline fun callable3(noinline function: ( +public inline fun callable3(noinline + onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, ) -> R) = - LambdaCallable3(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, function) + LambdaCallable3(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, onCancelCall, function) public inline fun (( p0: P0, p1: P1, p2: P2, -) -> R).asCallable() = callable3(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable3(onCancelCall, this) public class LambdaCallable4 @PublishedApi internal constructor( variantConverter: VariantConverter, @@ -172,13 +177,14 @@ public class LambdaCallable4 @PublishedApi internal construct private val p1Type: VariantConverter, private val p2Type: VariantConverter, p3Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, p2: P2, p3: P3, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3) @@ -197,19 +203,19 @@ public class LambdaCallable4 @PublishedApi internal construct p1: P1, p2: P2, p3: P3, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3) } + ) = LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3) } public fun bind( p1: P1, p2: P2, p3: P3, - ) = LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3) } + ) = LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3) } public fun bind(p2: P2, p3: P3) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3) } public fun bind(p3: P3) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3) } public companion object { @JvmStatic @@ -227,25 +233,25 @@ public class LambdaCallable4 @PublishedApi internal construct p3: P3, ) -> R, ) = - LambdaCallable4(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, function) + LambdaCallable4(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, null, function) } } public inline fun callable4(noinline - function: ( + onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, p3: P3, ) -> R) = - LambdaCallable4(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, function) + LambdaCallable4(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, onCancelCall, function) public inline fun (( p0: P0, p1: P1, p2: P2, p3: P3, -) -> R).asCallable() = callable4(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable4(onCancelCall, this) public class LambdaCallable5 @PublishedApi internal constructor( variantConverter: VariantConverter, @@ -254,6 +260,7 @@ public class LambdaCallable5 @PublishedApi internal const private val p2Type: VariantConverter, private val p3Type: VariantConverter, p4Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -261,7 +268,7 @@ public class LambdaCallable5 @PublishedApi internal const p3: P3, p4: P4, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4) @@ -282,27 +289,28 @@ public class LambdaCallable5 @PublishedApi internal const p2: P2, p3: P3, p4: P4, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3, p4) } + ) = LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4) } public fun bind( p1: P1, p2: P2, p3: P3, p4: P4, - ) = LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3, p4) } + ) = + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4) } public fun bind( p2: P2, p3: P3, p4: P4, ) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4) } public fun bind(p3: P3, p4: P4) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4) } public fun bind(p4: P4) = - LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4) } public companion object { @JvmStatic @@ -322,19 +330,19 @@ public class LambdaCallable5 @PublishedApi internal const p4: P4, ) -> R, ) = - LambdaCallable5(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, function) + LambdaCallable5(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, null, function) } } public inline fun - callable5(noinline function: ( + callable5(noinline onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, ) -> R) = - LambdaCallable5(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, function) + LambdaCallable5(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, onCancelCall, function) public inline fun (( p0: P0, @@ -342,7 +350,7 @@ public inline fun R).asCallable() = callable5(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable5(onCancelCall, this) public class LambdaCallable6 @PublishedApi internal constructor( variantConverter: VariantConverter, @@ -352,6 +360,7 @@ public class LambdaCallable6 @PublishedApi internal c private val p3Type: VariantConverter, private val p4Type: VariantConverter, p5Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -360,7 +369,8 @@ public class LambdaCallable6 @PublishedApi internal c p4: P4, p5: P5, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5) @@ -383,7 +393,7 @@ public class LambdaCallable6 @PublishedApi internal c p3: P3, p4: P4, p5: P5, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3, p4, p5) } + ) = LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5) } public fun bind( p1: P1, @@ -391,7 +401,8 @@ public class LambdaCallable6 @PublishedApi internal c p3: P3, p4: P4, p5: P5, - ) = LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3, p4, p5) } + ) = + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5) } public fun bind( p2: P2, @@ -399,20 +410,20 @@ public class LambdaCallable6 @PublishedApi internal c p4: P4, p5: P5, ) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5) } public fun bind( p3: P3, p4: P4, p5: P5, ) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5) } public fun bind(p4: P4, p5: P5) = - LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5) } public fun bind(p5: P5) = - LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5) } public companion object { @JvmStatic @@ -434,12 +445,12 @@ public class LambdaCallable6 @PublishedApi internal c p5: P5, ) -> R, ) = - LambdaCallable6(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, function) + LambdaCallable6(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, null, function) } } public inline fun callable6(noinline function: ( + R> callable6(noinline onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, @@ -447,7 +458,7 @@ public inline fun R) = - LambdaCallable6(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, function) + LambdaCallable6(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, onCancelCall, function) public inline fun (( @@ -457,7 +468,7 @@ public inline fun R).asCallable() = callable6(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable6(onCancelCall, this) public class LambdaCallable7 @PublishedApi internal constructor( variantConverter: VariantConverter, @@ -468,6 +479,7 @@ public class LambdaCallable7 @PublishedApi intern private val p4Type: VariantConverter, private val p5Type: VariantConverter, p6Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -477,7 +489,8 @@ public class LambdaCallable7 @PublishedApi intern p5: P5, p6: P6, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6) @@ -502,7 +515,7 @@ public class LambdaCallable7 @PublishedApi intern p4: P4, p5: P5, p6: P6, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3, p4, p5, p6) } + ) = LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6) } public fun bind( p1: P1, @@ -511,7 +524,8 @@ public class LambdaCallable7 @PublishedApi intern p4: P4, p5: P5, p6: P6, - ) = LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6) } + ) = + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6) } public fun bind( p2: P2, @@ -520,7 +534,7 @@ public class LambdaCallable7 @PublishedApi intern p5: P5, p6: P6, ) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6) } public fun bind( p3: P3, @@ -528,20 +542,20 @@ public class LambdaCallable7 @PublishedApi intern p5: P5, p6: P6, ) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6) } public fun bind( p4: P4, p5: P5, p6: P6, ) = - LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6) } public fun bind(p5: P5, p6: P6) = - LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6) } public fun bind(p6: P6) = - LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6) } public companion object { @JvmStatic @@ -565,12 +579,12 @@ public class LambdaCallable7 @PublishedApi intern p6: P6, ) -> R, ) = - LambdaCallable7(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, function) + LambdaCallable7(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, null, function) } } public inline fun callable7(noinline function: ( + P6, reified R> callable7(noinline onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, @@ -579,7 +593,7 @@ public inline fun R) = - LambdaCallable7(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, function) + LambdaCallable7(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, onCancelCall, function) public inline fun (( @@ -590,7 +604,7 @@ public inline fun R).asCallable() = callable7(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable7(onCancelCall, this) public class LambdaCallable8 @PublishedApi internal constructor( variantConverter: VariantConverter, @@ -602,6 +616,7 @@ public class LambdaCallable8 @PublishedApi in private val p5Type: VariantConverter, private val p6Type: VariantConverter, p7Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -612,8 +627,8 @@ public class LambdaCallable8 @PublishedApi in p6: P6, p7: P7, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7) @@ -640,7 +655,8 @@ public class LambdaCallable8 @PublishedApi in p5: P5, p6: P6, p7: P7, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + ) = + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public fun bind( p1: P1, @@ -651,7 +667,7 @@ public class LambdaCallable8 @PublishedApi in p6: P6, p7: P7, ) = - LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public fun bind( p2: P2, @@ -661,7 +677,7 @@ public class LambdaCallable8 @PublishedApi in p6: P6, p7: P7, ) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public fun bind( p3: P3, @@ -670,7 +686,7 @@ public class LambdaCallable8 @PublishedApi in p6: P6, p7: P7, ) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public fun bind( p4: P4, @@ -678,20 +694,20 @@ public class LambdaCallable8 @PublishedApi in p6: P6, p7: P7, ) = - LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public fun bind( p5: P5, p6: P6, p7: P7, ) = - LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public fun bind(p6: P6, p7: P7) = - LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public fun bind(p7: P7) = - LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7) } public companion object { @JvmStatic @@ -717,12 +733,13 @@ public class LambdaCallable8 @PublishedApi in p7: P7, ) -> R, ) = - LambdaCallable8(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, function) + LambdaCallable8(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, null, function) } } public inline fun callable8(noinline function: ( + P6, reified P7, reified R> callable8(noinline onCancelCall: (() -> Unit)? = null, noinline + function: ( p0: P0, p1: P1, p2: P2, @@ -732,7 +749,7 @@ public inline fun R) = - LambdaCallable8(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, function) + LambdaCallable8(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, onCancelCall, function) public inline fun (( @@ -744,7 +761,7 @@ public inline fun R).asCallable() = callable8(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable8(onCancelCall, this) public class LambdaCallable9 @PublishedApi internal constructor( @@ -758,6 +775,7 @@ public class LambdaCallable9 @PublishedAp private val p6Type: VariantConverter, private val p7Type: VariantConverter, p8Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -769,8 +787,8 @@ public class LambdaCallable9 @PublishedAp p7: P7, p8: P8, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8) @@ -799,7 +817,8 @@ public class LambdaCallable9 @PublishedAp p6: P6, p7: P7, p8: P8, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + ) = + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind( p1: P1, @@ -811,7 +830,7 @@ public class LambdaCallable9 @PublishedAp p7: P7, p8: P8, ) = - LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind( p2: P2, @@ -822,7 +841,7 @@ public class LambdaCallable9 @PublishedAp p7: P7, p8: P8, ) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind( p3: P3, @@ -832,7 +851,7 @@ public class LambdaCallable9 @PublishedAp p7: P7, p8: P8, ) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind( p4: P4, @@ -841,7 +860,7 @@ public class LambdaCallable9 @PublishedAp p7: P7, p8: P8, ) = - LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind( p5: P5, @@ -849,20 +868,20 @@ public class LambdaCallable9 @PublishedAp p7: P7, p8: P8, ) = - LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind( p6: P6, p7: P7, p8: P8, ) = - LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind(p7: P7, p8: P8) = - LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public fun bind(p8: P8) = - LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8) } public companion object { @JvmStatic @@ -890,12 +909,13 @@ public class LambdaCallable9 @PublishedAp p8: P8, ) -> R, ) = - LambdaCallable9(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, function) + LambdaCallable9(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, null, function) } } public inline fun callable9(noinline function: ( + P6, reified P7, reified P8, reified R> callable9(noinline onCancelCall: (() -> Unit)? = null, + noinline function: ( p0: P0, p1: P1, p2: P2, @@ -906,7 +926,7 @@ public inline fun R) = - LambdaCallable9(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, function) + LambdaCallable9(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, onCancelCall, function) public inline fun (( @@ -919,7 +939,7 @@ public inline fun R).asCallable() = callable9(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable9(onCancelCall, this) public class LambdaCallable10 @PublishedApi internal constructor( @@ -934,6 +954,7 @@ public class LambdaCallable10 @Publis private val p7Type: VariantConverter, private val p8Type: VariantConverter, p9Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -946,8 +967,8 @@ public class LambdaCallable10 @Publis p8: P8, p9: P9, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type, p9Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type, p9Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8, paramsArray[9] as P9) @@ -978,7 +999,8 @@ public class LambdaCallable10 @Publis p7: P7, p8: P8, p9: P9, - ) = LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + ) = + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind( p1: P1, @@ -991,7 +1013,7 @@ public class LambdaCallable10 @Publis p8: P8, p9: P9, ) = - LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind( p2: P2, @@ -1003,7 +1025,7 @@ public class LambdaCallable10 @Publis p8: P8, p9: P9, ) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind( p3: P3, @@ -1014,7 +1036,7 @@ public class LambdaCallable10 @Publis p8: P8, p9: P9, ) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind( p4: P4, @@ -1024,7 +1046,7 @@ public class LambdaCallable10 @Publis p8: P8, p9: P9, ) = - LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind( p5: P5, @@ -1033,7 +1055,7 @@ public class LambdaCallable10 @Publis p8: P8, p9: P9, ) = - LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind( p6: P6, @@ -1041,20 +1063,20 @@ public class LambdaCallable10 @Publis p8: P8, p9: P9, ) = - LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind( p7: P7, p8: P8, p9: P9, ) = - LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind(p8: P8, p9: P9) = - LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public fun bind(p9: P9) = - LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } + LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) } public companion object { @JvmStatic @@ -1084,12 +1106,13 @@ public class LambdaCallable10 @Publis p9: P9, ) -> R, ) = - LambdaCallable10(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, function) + LambdaCallable10(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, null, function) } } public inline fun callable10(noinline function: ( + P6, reified P7, reified P8, reified P9, reified R> callable10(noinline + onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, @@ -1101,7 +1124,7 @@ public inline fun R) = - LambdaCallable10(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, function) + LambdaCallable10(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, onCancelCall, function) public inline fun (( @@ -1115,7 +1138,7 @@ public inline fun R).asCallable() = callable10(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable10(onCancelCall, this) public class LambdaCallable11 @PublishedApi internal constructor( @@ -1131,6 +1154,7 @@ public class LambdaCallable11 @P private val p8Type: VariantConverter, private val p9Type: VariantConverter, p10Type: VariantConverter, + onCancelCall: (() -> Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -1144,8 +1168,8 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) -> R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type, p9Type, p10Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type, p9Type, p10Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8, paramsArray[9] as P9, paramsArray[10] as P10) @@ -1179,7 +1203,7 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable0(variantConverter) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p1: P1, @@ -1193,7 +1217,7 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable1(variantConverter, p0Type) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p2: P2, @@ -1206,7 +1230,7 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable2(variantConverter, p0Type, p1Type) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p3: P3, @@ -1218,7 +1242,7 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable3(variantConverter, p0Type, p1Type, p2Type) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p4: P4, @@ -1229,7 +1253,7 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p5: P5, @@ -1239,7 +1263,7 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p6: P6, @@ -1248,7 +1272,7 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p7: P7, @@ -1256,20 +1280,20 @@ public class LambdaCallable11 @P p9: P9, p10: P10, ) = - LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind( p8: P8, p9: P9, p10: P10, ) = - LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind(p9: P9, p10: P10) = - LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public fun bind(p10: P10) = - LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } + LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) } public companion object { @JvmStatic @@ -1301,12 +1325,13 @@ public class LambdaCallable11 @P p10: P10, ) -> R, ) = - LambdaCallable11(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, function) + LambdaCallable11(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, null, function) } } public inline fun callable11(noinline function: ( + P6, reified P7, reified P8, reified P9, reified P10, reified R> callable11(noinline + onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, @@ -1319,7 +1344,7 @@ public inline fun R) = - LambdaCallable11(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, function) + LambdaCallable11(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, onCancelCall, function) public inline fun (( @@ -1334,7 +1359,7 @@ public inline fun R).asCallable() = callable11(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable11(onCancelCall, this) public class LambdaCallable12 @PublishedApi internal constructor( @@ -1351,6 +1376,7 @@ public class LambdaCallable12 Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -1365,8 +1391,8 @@ public class LambdaCallable12 R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type, p9Type, p10Type, p11Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8, paramsArray[9] as P9, paramsArray[10] as P10, paramsArray[11] as P11) @@ -1402,7 +1428,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p1: P1, @@ -1417,7 +1443,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p2: P2, @@ -1431,7 +1457,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p3: P3, @@ -1444,7 +1470,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p4: P4, @@ -1456,7 +1482,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p5: P5, @@ -1467,7 +1493,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p6: P6, @@ -1477,7 +1503,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p7: P7, @@ -1486,7 +1512,7 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p8: P8, @@ -1494,20 +1520,20 @@ public class LambdaCallable12 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind( p9: P9, p10: P10, p11: P11, ) = - LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind(p10: P10, p11: P11) = - LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public fun bind(p11: P11) = - LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } + LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) } public companion object { @JvmStatic @@ -1541,13 +1567,13 @@ public class LambdaCallable12 R, ) = - LambdaCallable12(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, function) + LambdaCallable12(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, null, function) } } public inline fun callable12(noinline - function: ( + onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, @@ -1561,7 +1587,7 @@ public inline fun R) = - LambdaCallable12(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, function) + LambdaCallable12(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, onCancelCall, function) public inline fun (( @@ -1577,7 +1603,7 @@ public inline fun R).asCallable() = callable12(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable12(onCancelCall, this) public class LambdaCallable13 @PublishedApi internal constructor( @@ -1595,6 +1621,7 @@ public class LambdaCallable13 Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -1610,8 +1637,8 @@ public class LambdaCallable13 R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type, p9Type, p10Type, p11Type, p12Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8, paramsArray[9] as P9, paramsArray[10] as P10, paramsArray[11] as P11, paramsArray[12] as P12) @@ -1649,7 +1676,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p1: P1, @@ -1665,7 +1692,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p2: P2, @@ -1680,7 +1707,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p3: P3, @@ -1694,7 +1721,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p4: P4, @@ -1707,7 +1734,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p5: P5, @@ -1719,7 +1746,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p6: P6, @@ -1730,7 +1757,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p7: P7, @@ -1740,7 +1767,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p8: P8, @@ -1749,7 +1776,7 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p9: P9, @@ -1757,20 +1784,20 @@ public class LambdaCallable13 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind( p10: P10, p11: P11, p12: P12, ) = - LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind(p11: P11, p12: P12) = - LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public fun bind(p12: P12) = - LambdaCallable12(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } + LambdaCallable12(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) } public companion object { @JvmStatic @@ -1806,13 +1833,13 @@ public class LambdaCallable13 R, ) = - LambdaCallable13(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, function) + LambdaCallable13(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, null, function) } } public inline fun - callable13(noinline function: ( + callable13(noinline onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, @@ -1827,7 +1854,7 @@ public inline fun R) = - LambdaCallable13(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, function) + LambdaCallable13(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, onCancelCall, function) public inline fun (( @@ -1844,7 +1871,7 @@ public inline fun R).asCallable() = callable13(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable13(onCancelCall, this) public class LambdaCallable14 @PublishedApi internal constructor( @@ -1863,6 +1890,7 @@ public class LambdaCallable14 Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -1879,8 +1907,8 @@ public class LambdaCallable14 R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8, paramsArray[9] as P9, paramsArray[10] as P10, paramsArray[11] as P11, paramsArray[12] as P12, paramsArray[13] as P13) @@ -1920,7 +1948,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p1: P1, @@ -1937,7 +1965,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p2: P2, @@ -1953,7 +1981,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p3: P3, @@ -1968,7 +1996,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p4: P4, @@ -1982,7 +2010,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p5: P5, @@ -1995,7 +2023,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p6: P6, @@ -2007,7 +2035,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p7: P7, @@ -2018,7 +2046,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p8: P8, @@ -2028,7 +2056,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p9: P9, @@ -2037,7 +2065,7 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p10: P10, @@ -2045,20 +2073,20 @@ public class LambdaCallable14 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind( p11: P11, p12: P12, p13: P13, ) = - LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind(p12: P12, p13: P13) = - LambdaCallable12(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable12(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public fun bind(p13: P13) = - LambdaCallable13(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } + LambdaCallable13(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) } public companion object { @JvmStatic @@ -2096,13 +2124,13 @@ public class LambdaCallable14 R, ) = - LambdaCallable14(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p13Class)]!!, function) + LambdaCallable14(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p13Class)]!!, null, function) } } public inline fun callable14(noinline function: ( + reified R> callable14(noinline onCancelCall: (() -> Unit)? = null, noinline function: ( p0: P0, p1: P1, p2: P2, @@ -2118,7 +2146,7 @@ public inline fun R) = - LambdaCallable14(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, variantMapper[P13::class]!!, function) + LambdaCallable14(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, variantMapper[P13::class]!!, onCancelCall, function) public inline fun R).asCallable() = callable14(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable14(onCancelCall, this) public class LambdaCallable15 @PublishedApi internal constructor( @@ -2157,6 +2185,7 @@ public class LambdaCallable15 Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -2174,8 +2203,8 @@ public class LambdaCallable15 R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, p14Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, p14Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8, paramsArray[9] as P9, paramsArray[10] as P10, paramsArray[11] as P11, paramsArray[12] as P12, paramsArray[13] as P13, paramsArray[14] as P14) @@ -2217,7 +2246,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p1: P1, @@ -2235,7 +2264,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p2: P2, @@ -2252,7 +2281,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p3: P3, @@ -2268,7 +2297,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p4: P4, @@ -2283,7 +2312,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p5: P5, @@ -2297,7 +2326,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p6: P6, @@ -2310,7 +2339,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p7: P7, @@ -2322,7 +2351,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p8: P8, @@ -2333,7 +2362,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p9: P9, @@ -2343,7 +2372,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p10: P10, @@ -2352,7 +2381,7 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p11: P11, @@ -2360,20 +2389,20 @@ public class LambdaCallable15 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind( p12: P12, p13: P13, p14: P14, ) = - LambdaCallable12(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable12(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind(p13: P13, p14: P14) = - LambdaCallable13(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable13(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public fun bind(p14: P14) = - LambdaCallable14(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } + LambdaCallable14(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) } public companion object { @JvmStatic @@ -2413,13 +2442,14 @@ public class LambdaCallable15 R, ) = - LambdaCallable15(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p13Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p14Class)]!!, function) + LambdaCallable15(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p13Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p14Class)]!!, null, function) } } public inline fun callable15(noinline function: ( + reified P14, reified R> callable15(noinline onCancelCall: (() -> Unit)? = null, noinline + function: ( p0: P0, p1: P1, p2: P2, @@ -2436,7 +2466,7 @@ public inline fun R) = - LambdaCallable15(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, variantMapper[P13::class]!!, variantMapper[P14::class]!!, function) + LambdaCallable15(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, variantMapper[P13::class]!!, variantMapper[P14::class]!!, onCancelCall, function) public inline fun R).asCallable() = callable15(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable15(onCancelCall, this) public class LambdaCallable16 @PublishedApi internal constructor( @@ -2477,6 +2507,7 @@ public class LambdaCallable16 Unit)? = null, private val function: ( p0: P0, p1: P1, @@ -2495,8 +2526,8 @@ public class LambdaCallable16 R, -) : LambdaCallable(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, - p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, p14Type, p15Type) { +) : LambdaCallable(variantConverter, onCancelCall, p0Type, p1Type, p2Type, p3Type, p4Type, + p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, p14Type, p15Type) { public override fun invokeKt(): R = function(paramsArray[0] as P0, paramsArray[1] as P1, paramsArray[2] as P2, paramsArray[3] as P3, paramsArray[4] as P4, paramsArray[5] as P5, paramsArray[6] as P6, paramsArray[7] as P7, paramsArray[8] as P8, paramsArray[9] as P9, paramsArray[10] as P10, paramsArray[11] as P11, paramsArray[12] as P12, paramsArray[13] as P13, paramsArray[14] as P14, paramsArray[15] as P15) @@ -2540,7 +2571,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable0(variantConverter, onCancelCall) { -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p1: P1, @@ -2559,7 +2590,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable1(variantConverter, p0Type, onCancelCall) { p0: P0 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p2: P2, @@ -2577,7 +2608,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable2(variantConverter, p0Type, p1Type, onCancelCall) { p0: P0, p1: P1 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p3: P3, @@ -2594,7 +2625,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable3(variantConverter, p0Type, p1Type, p2Type, onCancelCall) { p0: P0, p1: P1, p2: P2 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p4: P4, @@ -2610,7 +2641,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable4(variantConverter, p0Type, p1Type, p2Type, p3Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p5: P5, @@ -2625,7 +2656,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable5(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p6: P6, @@ -2639,7 +2670,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable6(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p7: P7, @@ -2652,7 +2683,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable7(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p8: P8, @@ -2664,7 +2695,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable8(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p9: P9, @@ -2675,7 +2706,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable9(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p10: P10, @@ -2685,7 +2716,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable10(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p11: P11, @@ -2694,7 +2725,7 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable11(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p12: P12, @@ -2702,20 +2733,20 @@ public class LambdaCallable16 function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable12(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind( p13: P13, p14: P14, p15: P15, ) = - LambdaCallable13(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable13(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind(p14: P14, p15: P15) = - LambdaCallable14(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable14(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public fun bind(p15: P15) = - LambdaCallable15(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, p14Type) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13, p14: P14 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } + LambdaCallable15(variantConverter, p0Type, p1Type, p2Type, p3Type, p4Type, p5Type, p6Type, p7Type, p8Type, p9Type, p10Type, p11Type, p12Type, p13Type, p14Type, onCancelCall) { p0: P0, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5, p6: P6, p7: P7, p8: P8, p9: P9, p10: P10, p11: P11, p12: P12, p13: P13, p14: P14 -> function(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) } public companion object { @JvmStatic @@ -2757,13 +2788,14 @@ public class LambdaCallable16 R, ) = - LambdaCallable16(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p13Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p14Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p15Class)]!!, function) + LambdaCallable16(variantMapper.getOrDefault(Reflection.getOrCreateKotlinClass(returnClass), NIL), variantMapper[Reflection.getOrCreateKotlinClass(p0Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p1Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p2Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p3Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p4Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p5Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p6Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p7Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p8Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p9Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p10Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p11Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p12Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p13Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p14Class)]!!, variantMapper[Reflection.getOrCreateKotlinClass(p15Class)]!!, null, function) } } public inline fun callable16(noinline function: ( + reified P14, reified P15, reified R> callable16(noinline onCancelCall: (() -> Unit)? = null, + noinline function: ( p0: P0, p1: P1, p2: P2, @@ -2781,7 +2813,7 @@ public inline fun R) = - LambdaCallable16(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, variantMapper[P13::class]!!, variantMapper[P14::class]!!, variantMapper[P15::class]!!, function) + LambdaCallable16(variantMapper.getOrDefault(R::class, NIL), variantMapper[P0::class]!!, variantMapper[P1::class]!!, variantMapper[P2::class]!!, variantMapper[P3::class]!!, variantMapper[P4::class]!!, variantMapper[P5::class]!!, variantMapper[P6::class]!!, variantMapper[P7::class]!!, variantMapper[P8::class]!!, variantMapper[P9::class]!!, variantMapper[P10::class]!!, variantMapper[P11::class]!!, variantMapper[P12::class]!!, variantMapper[P13::class]!!, variantMapper[P14::class]!!, variantMapper[P15::class]!!, onCancelCall, function) public inline fun R).asCallable() = callable16(this) +) -> R).asCallable(noinline onCancelCall: (() -> Unit)? = null) = callable16(onCancelCall, this) diff --git a/kt/plugins/godot-gradle-plugin/src/main/resources/godot/gradle/godot-kotlin-graal-jni-config.json b/kt/plugins/godot-gradle-plugin/src/main/resources/godot/gradle/godot-kotlin-graal-jni-config.json index 82e05958b2..99724a86e3 100644 --- a/kt/plugins/godot-gradle-plugin/src/main/resources/godot/gradle/godot-kotlin-graal-jni-config.json +++ b/kt/plugins/godot-gradle-plugin/src/main/resources/godot/gradle/godot-kotlin-graal-jni-config.json @@ -175,7 +175,7 @@ { "name" : "engine_call_constructor", "parameterTypes" : [] }, { "name" : "engine_call_constructor_object_string_name", "parameterTypes" : [] }, - { "name" : "engine_call_constructor_kt_custom_callable", "parameterTypes" : ["godot.core.LambdaCallable", "int", "int"] }, + { "name" : "engine_call_constructor_kt_custom_callable", "parameterTypes" : ["godot.core.LambdaCallable", "int", "int", "boolean"] }, { "name" : "engine_call_copy_constructor", "parameterTypes" : [] }, { "name" : "engine_call_bind", "parameterTypes" : ["long"] }, @@ -204,7 +204,7 @@ { "name" : "INSTANCE" } ], "methods" : [ - { "name" : "wrap_in_custom_callable", "parameterTypes" : ["godot.core.LambdaCallable", "int", "int"] } + { "name" : "wrap_in_custom_callable", "parameterTypes" : ["godot.core.LambdaCallable", "int", "int", "boolean"] } ] }, { @@ -725,7 +725,9 @@ "methods":[ {"name":"invokeNoReturn","parameterTypes":[] }, {"name":"invokeWithReturn","parameterTypes":[] }, - {"name":"getReturnVariantType","parameterTypes":[] } + {"name":"getReturnVariantType","parameterTypes":[] }, + {"name":"hashCode","parameterTypes":[] }, + {"name":"onCancel","parameterTypes":[] } ] }, { diff --git a/src/jvm_wrapper/bridge/callable_bridge.cpp b/src/jvm_wrapper/bridge/callable_bridge.cpp index 0d25b453df..5072783b8e 100644 --- a/src/jvm_wrapper/bridge/callable_bridge.cpp +++ b/src/jvm_wrapper/bridge/callable_bridge.cpp @@ -18,10 +18,13 @@ uintptr_t CallableBridge::engine_call_constructor_object_string_name(JNIEnv* p_r return reinterpret_cast(memnew(Callable(args[0].operator Object*(), args[1].operator StringName()))); } -uintptr_t CallableBridge::engine_call_constructor_kt_custom_callable(JNIEnv* p_raw_env, jobject p_instance, jobject p_kt_custom_callable_instance, jint p_variant_type_ordinal, jint p_hash_code) { +uintptr_t CallableBridge::engine_call_constructor_kt_custom_callable(JNIEnv* p_raw_env, jobject p_instance, + jobject p_kt_custom_callable_instance, + jint p_variant_type_ordinal, jint p_hash_code, + jboolean p_has_on_destroy) { jni::Env env {p_raw_env}; return reinterpret_cast( - memnew(Callable(memnew(KotlinCallableCustom(env, p_kt_custom_callable_instance, static_cast(p_variant_type_ordinal), p_hash_code)))) + memnew(Callable(memnew(KotlinCallableCustom(env, p_kt_custom_callable_instance, static_cast(p_variant_type_ordinal), p_hash_code, p_has_on_destroy)))) ); } diff --git a/src/jvm_wrapper/bridge/callable_bridge.h b/src/jvm_wrapper/bridge/callable_bridge.h index 591ac8f4f1..5c38885fb8 100644 --- a/src/jvm_wrapper/bridge/callable_bridge.h +++ b/src/jvm_wrapper/bridge/callable_bridge.h @@ -11,7 +11,7 @@ namespace bridges { INIT_JNI_BINDINGS( INIT_NATIVE_METHOD("engine_call_constructor", "()J", CallableBridge::engine_call_constructor) INIT_NATIVE_METHOD("engine_call_constructor_object_string_name", "()J", CallableBridge::engine_call_constructor_object_string_name) - INIT_NATIVE_METHOD("engine_call_constructor_kt_custom_callable", "(Lgodot/core/LambdaCallable;II)J", CallableBridge::engine_call_constructor_kt_custom_callable) + INIT_NATIVE_METHOD("engine_call_constructor_kt_custom_callable", "(Lgodot/core/LambdaCallable;IIZ)J", CallableBridge::engine_call_constructor_kt_custom_callable) INIT_NATIVE_METHOD("engine_call_copy_constructor", "()J", CallableBridge::engine_call_copy_constructor) INIT_NATIVE_METHOD("engine_call_bind", "(J)V", CallableBridge::engine_call_bind) INIT_NATIVE_METHOD("engine_call_bindv", "(J)V", CallableBridge::engine_call_bindv) @@ -39,7 +39,10 @@ namespace bridges { static uintptr_t engine_call_constructor_object_string_name(JNIEnv* p_raw_env, jobject p_instance); - static uintptr_t engine_call_constructor_kt_custom_callable(JNIEnv* p_raw_env, jobject p_instance, jobject p_kt_custom_callable_instance, jint p_variant_type_ordinal, jint p_hash_code); + static uintptr_t engine_call_constructor_kt_custom_callable(JNIEnv* p_raw_env, jobject p_instance, + jobject p_kt_custom_callable_instance, + jint p_variant_type_ordinal, jint p_hash_code, + jboolean p_has_on_destroy); static uintptr_t engine_call_copy_constructor(JNIEnv* p_raw_env, jobject p_instance); diff --git a/src/jvm_wrapper/bridge/lambda_callable_bridge.cpp b/src/jvm_wrapper/bridge/lambda_callable_bridge.cpp index dcc3b4a272..4489954d9a 100644 --- a/src/jvm_wrapper/bridge/lambda_callable_bridge.cpp +++ b/src/jvm_wrapper/bridge/lambda_callable_bridge.cpp @@ -6,10 +6,10 @@ using namespace bridges; uintptr_t LambdaCallableBridge::wrap_in_custom_callable(JNIEnv* p_raw_env, jobject p_instance, jobject p_kt_custom_callable_instance, jint p_variant_type_ordinal, - jint p_hash_code) { + jint p_hash_code, jboolean p_has_on_destroy) { jni::Env env {p_raw_env}; return reinterpret_cast( - memnew(KotlinCallableCustom(env, p_kt_custom_callable_instance, static_cast(p_variant_type_ordinal), p_hash_code)) + memnew(KotlinCallableCustom(env, p_kt_custom_callable_instance, static_cast(p_variant_type_ordinal), p_hash_code, p_has_on_destroy)) ); } diff --git a/src/jvm_wrapper/bridge/lambda_callable_bridge.h b/src/jvm_wrapper/bridge/lambda_callable_bridge.h index 2d82650a18..fb95805e1b 100644 --- a/src/jvm_wrapper/bridge/lambda_callable_bridge.h +++ b/src/jvm_wrapper/bridge/lambda_callable_bridge.h @@ -9,12 +9,12 @@ namespace bridges { // clang-format off INIT_JNI_BINDINGS( - INIT_NATIVE_METHOD("wrap_in_custom_callable", "(Lgodot/core/LambdaCallable;II)J", LambdaCallableBridge::wrap_in_custom_callable) + INIT_NATIVE_METHOD("wrap_in_custom_callable", "(Lgodot/core/LambdaCallable;IIZ)J", LambdaCallableBridge::wrap_in_custom_callable) ) // clang-format on public: - static uintptr_t wrap_in_custom_callable(JNIEnv* p_raw_env, jobject p_instance, jobject p_kt_custom_callable_instance, jint p_variant_type_ordinal, jint p_hash_code); + static uintptr_t wrap_in_custom_callable(JNIEnv* p_raw_env, jobject p_instance, jobject p_kt_custom_callable_instance, jint p_variant_type_ordinal, jint p_hash_code, jboolean p_has_on_destroy); }; } diff --git a/src/jvm_wrapper/kotlin_callable_custom.cpp b/src/jvm_wrapper/kotlin_callable_custom.cpp index f9d6cf8d15..7f4b816621 100644 --- a/src/jvm_wrapper/kotlin_callable_custom.cpp +++ b/src/jvm_wrapper/kotlin_callable_custom.cpp @@ -3,11 +3,11 @@ #include "gd_kotlin.h" void LambdaCallable::invoke(jni::Env& p_env, const Variant** p_args, int args_count, Variant& r_ret) const { - TransferContext& transfer_context {TransferContext::get_instance()}; + TransferContext& transfer_context{TransferContext::get_instance()}; transfer_context.write_args(p_env, p_args, args_count); if (has_return_value) { - jni::JObject ret {wrapped.call_object_method(p_env, INVOKE_WITH_RETURN)}; + jni::JObject ret{wrapped.call_object_method(p_env, INVOKE_WITH_RETURN)}; transfer_context.read_return_value(p_env, r_ret); ret.delete_local_ref(p_env); @@ -15,6 +15,16 @@ void LambdaCallable::invoke(jni::Env& p_env, const Variant** p_args, int args_co } wrapped.call_void_method(p_env, INVOKE_NO_RETURN); + + has_been_called = true; +} + +void LambdaCallable::on_destroy(jni::Env& p_env) const { + if (!has_on_cancel || has_been_called) { + return; + } + + wrapped.call_void_method(p_env, ON_CANCEL); } int LambdaCallable::get_hash_code() const { @@ -22,20 +32,23 @@ int LambdaCallable::get_hash_code() const { } bool LambdaCallable::equals(const LambdaCallable& other) const { - jni::Env env {jni::Jvm::current_env()}; + jni::Env env{jni::Jvm::current_env()}; return wrapped.is_same_object(env, other.wrapped); } -LambdaCallable::LambdaCallable(jni::Env& p_env, jni::JObject p_wrapped, Variant::Type return_type, int p_hash_code) : JvmInstanceWrapper(p_env, p_wrapped) { +LambdaCallable::LambdaCallable(jni::Env& p_env, jni::JObject p_wrapped, Variant::Type return_type, int p_hash_code, + bool p_has_on_cancel) : JvmInstanceWrapper(p_env, p_wrapped) { has_return_value = return_type != Variant::NIL; hash_code = p_hash_code; + has_on_cancel = p_has_on_cancel; + has_been_called = false; } void KotlinCallableCustom::call(const Variant** p_arguments, int p_argcount, Variant& r_return_value, - Callable::CallError &r_call_error) const { - jni::Env env {jni::Jvm::current_env()}; + Callable::CallError& r_call_error) const { + jni::Env env{jni::Jvm::current_env()}; kt_callable.invoke(env, p_arguments, p_argcount, r_return_value); } @@ -60,8 +73,8 @@ CallableCustom::CompareLessFunc KotlinCallableCustom::get_compare_less_func() co } bool KotlinCallableCustom::compare_equal(const CallableCustom* p_a, const CallableCustom* p_b) { - auto a {dynamic_cast(p_a)}; - auto b {dynamic_cast(p_b)}; + auto a{dynamic_cast(p_a)}; + auto b{dynamic_cast(p_b)}; if (!a || !b) { return false; @@ -75,7 +88,15 @@ bool KotlinCallableCustom::compare_less(const CallableCustom* p_a, const Callabl } KotlinCallableCustom::KotlinCallableCustom(jni::Env& p_env, jni::JObject p_wrapped, Variant::Type return_type, - int p_hash_code) : CallableCustom(), - kt_callable(p_env, p_wrapped, return_type, p_hash_code) { + int p_hash_code, bool p_has_on_destroy) : CallableCustom(), + kt_callable(p_env, p_wrapped, + return_type, + p_hash_code, + p_has_on_destroy) { + +} -} \ No newline at end of file +KotlinCallableCustom::~KotlinCallableCustom() { + jni::Env env{jni::Jvm::current_env()}; + kt_callable.on_destroy(env); +} diff --git a/src/jvm_wrapper/kotlin_callable_custom.h b/src/jvm_wrapper/kotlin_callable_custom.h index 02ffc3ffdc..e6d32601ce 100644 --- a/src/jvm_wrapper/kotlin_callable_custom.h +++ b/src/jvm_wrapper/kotlin_callable_custom.h @@ -12,26 +12,31 @@ JVM_INSTANCE_WRAPPER(LambdaCallable, "godot.core.LambdaCallable") { JNI_OBJECT_METHOD(INVOKE_WITH_RETURN) JNI_INT_METHOD(GET_RETURN_VARIANT_TYPE) JNI_INT_METHOD(HASH_CODE) + JNI_VOID_METHOD(ON_CANCEL) INIT_JNI_BINDINGS( INIT_JNI_METHOD(INVOKE_NO_RETURN, "invokeNoReturn", "()V") INIT_JNI_METHOD(INVOKE_WITH_RETURN, "invokeWithReturn", "()Ljava/lang/Object;") INIT_JNI_METHOD(GET_RETURN_VARIANT_TYPE, "getReturnVariantType", "()I") INIT_JNI_METHOD(HASH_CODE, "hashCode", "()I") + INIT_JNI_METHOD(ON_CANCEL, "onCancel", "()V") ) // clang-format on public: void invoke(jni::Env& p_env, const Variant** p_args, int args_count, Variant& r_ret) const; + void on_destroy(jni::Env& p_env) const; int get_hash_code() const; bool equals(const LambdaCallable& other) const; - LambdaCallable(jni::Env& p_env, jni::JObject p_wrapped, Variant::Type return_type, int p_hash_code); + LambdaCallable(jni::Env& p_env, jni::JObject p_wrapped, Variant::Type return_type, int p_hash_code, bool p_has_on_cancel); private: int hash_code; bool has_return_value; + bool has_on_cancel; + mutable bool has_been_called; }; class KotlinCallableCustom : public CallableCustom { @@ -44,7 +49,8 @@ class KotlinCallableCustom : public CallableCustom { CompareLessFunc get_compare_less_func() const override; ObjectID get_object() const override; - KotlinCallableCustom(jni::Env& p_env, jni::JObject p_wrapped, Variant::Type return_type, int p_hash_code); + KotlinCallableCustom(jni::Env& p_env, jni::JObject p_wrapped, Variant::Type return_type, int p_hash_code, bool p_has_on_destroy); + ~KotlinCallableCustom(); private: LambdaCallable kt_callable;