jextract/jni: Add nativeJavaType to TranslatedResult for explicit type handling#722
Merged
ktoso merged 4 commits intoswiftlang:mainfrom Apr 24, 2026
Merged
Conversation
# Conflicts: # Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+JavaTranslation.swift
sidepelican
commented
Apr 24, 2026
| } else { | ||
| return TranslatedResult( | ||
| javaType: javaType, | ||
| nativeJavaType: .long, |
Contributor
Author
There was a problem hiding this comment.
This isn't a new concern; it just makes an existing assumption explicit.
For example, using .wrapMemoryAddressUnsafe already implies we know the native return type is long.
ktoso
reviewed
Apr 24, 2026
| } | ||
|
|
||
| let translatedResult = try translate(swiftResult: SwiftResult(convention: .direct, type: swiftType.resultType), methodName: name) | ||
| let translatedResult = try translateResult(swiftType: swiftType.resultType, methodName: name) |
ktoso
approved these changes
Apr 24, 2026
Collaborator
ktoso
left a comment
There was a problem hiding this comment.
Looks good I think, thanks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is a refactoring effort to address the architectural concerns proposed in #720.
Previously, the return types of native functions were handled implicitly within
JavaTranslation.This PR changes that to an explicit exchange using the newly added
nativeJavaTypeinTranslatedResult.This change resolves existing
// FIXME:comments in the tuple generation logic.To ensure that
JavaTranslationandNativeJavaTranslationgenerate identical signatures for native functions, I have added an assertion to validate the correctness ofnativeJavaType.