Skip to content

jextract/jni: Basic accept/return support for Swift tuples#602

Merged
ktoso merged 3 commits intoswiftlang:mainfrom
ktoso:tuples
Mar 10, 2026
Merged

jextract/jni: Basic accept/return support for Swift tuples#602
ktoso merged 3 commits intoswiftlang:mainfrom
ktoso:tuples

Conversation

@ktoso
Copy link
Collaborator

@ktoso ktoso commented Mar 10, 2026

Support for returning and accepting tuples in jextract/jni.

We implement this by passing single element arrays as indirect results into which the thunks initialize the values.

I somehow super messed up my local gradle config so didn't verify the sample :| I'm working on figuring what happened...

resolves #596

Disclosure: boilerplate and general structure was generated using claude code. I have fully reviewed and polished up the output to a standard I deem acceptable for the project. The way we handle the out parameters is good as well, the array trick is good for these one off parameters of potentially different types. We could optimize this if we notice the tuple is of the same type and just use a single array then etc.

@ktoso ktoso changed the title WIP: jextract/jni tuple support jextract/jni: Basic accept/return support for Swift tuples Mar 10, 2026
@ktoso
Copy link
Collaborator Author

ktoso commented Mar 10, 2026

I'm sure this has edge cases I missed, e.g. arrays inside tuples, but let's take this incremental feature 👍

@ktoso ktoso marked this pull request as ready for review March 10, 2026 10:54
@ktoso ktoso merged commit 0c7b613 into swiftlang:main Mar 10, 2026
61 checks passed
@ktoso ktoso deleted the tuples branch March 10, 2026 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

jextract/jni: tuple support

1 participant