Skip to content

JNI async thunk generates empty jvalue(l: ) for generic result #752

@nerzh

Description

@nerzh

It seems to happen for an async method. I am not sure what the correct fix should be here. If this combination of async JNI bindings and generic results is not supported yet, maybe the generator should treat such methods as unsupported and skip them 🤷🏻‍♂️

/cust-wallet-core/.build/plugins/outputs/cust-wallet-core/CustWalletCore/destination/JExtractSwiftPlugin/Sources/QuickNodeApiTarget+SwiftJava.swift:71:130: error: cannot find 'jvalue(l:)' in scope
 69 |             environment.interface.SetLongField(environment, resultOut, _JNIMethodIDCache._OutSwiftGenericInstance.selfTypePointer, metadataPointerBits$.getJNIValue(in: environment))
 70 |           } // render(_:_:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1638
 71 |           _ = environment.interface.CallBooleanMethodA(environment, globalFuture, _JNIMethodIDCache.CompletableFuture.complete, [jvalue(l: )])
    |                                                                                                                                  `- error: cannot find 'jvalue(l:)' in scope
 72 |         } // printTaskBody(printer:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1799
 73 |         catch {

/cust-wallet-core/.build/plugins/outputs/cust-wallet-core/CustWalletCore/destination/JExtractSwiftPlugin/Sources/QuickNodeApiTarget+SwiftJava.swift:106:128: error: cannot find 'jvalue(l:)' in scope
104 |           environment.interface.SetLongField(environment, resultOut, _JNIMethodIDCache._OutSwiftGenericInstance.selfTypePointer, metadataPointerBits$.getJNIValue(in: environment))
105 |         } // render(_:_:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1638
106 |         _ = environment.interface.CallBooleanMethodA(environment, globalFuture, _JNIMethodIDCache.CompletableFuture.complete, [jvalue(l: )])
    |                                                                                                                                `- error: cannot find 'jvalue(l:)' in scope
107 |       } // printTaskBody(printer:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1799
108 |       catch {

/cust-wallet-core/.build/plugins/outputs/cust-wallet-core/CustWalletCore/destination/JExtractSwiftPlugin/Sources/QuickNodeApiTarget+SwiftJava.swift:163:130: error: cannot find 'jvalue(l:)' in scope
161 |             environment.interface.SetLongField(environment, resultOut, _JNIMethodIDCache._OutSwiftGenericInstance.selfTypePointer, metadataPointerBits$.getJNIValue(in: environment))
162 |           } // render(_:_:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1638
163 |           _ = environment.interface.CallBooleanMethodA(environment, globalFuture, _JNIMethodIDCache.CompletableFuture.complete, [jvalue(l: )])
    |                                                                                                                                  `- error: cannot find 'jvalue(l:)' in scope
164 |         } // printTaskBody(printer:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1799
165 |         catch {

/cust-wallet-core/.build/plugins/outputs/cust-wallet-core/CustWalletCore/destination/JExtractSwiftPlugin/Sources/QuickNodeApiTarget+SwiftJava.swift:198:128: error: cannot find 'jvalue(l:)' in scope
196 |           environment.interface.SetLongField(environment, resultOut, _JNIMethodIDCache._OutSwiftGenericInstance.selfTypePointer, metadataPointerBits$.getJNIValue(in: environment))
197 |         } // render(_:_:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1638
198 |         _ = environment.interface.CallBooleanMethodA(environment, globalFuture, _JNIMethodIDCache.CompletableFuture.complete, [jvalue(l: )])
    |                                                                                                                                `- error: cannot find 'jvalue(l:)' in scope
199 |       } // printTaskBody(printer:) @ JExtractSwiftLib/JNISwift2JavaGenerator+NativeTranslation.swift:1799
200 |       catch {

> Task :buildSwiftArmeabi-v7a FAILED

One of the Swift signatures that I suspect triggered this generated-code issue is:

public func sendRawTransaction(
  hexstring: String,
  maxfeerate: Double = 0.10
) async throws -> QuickNodeApi.RawResponse<QuickNodeApi.Sendrawtransaction>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions