@@ -38,42 +38,48 @@ struct JavaParameter {
38
38
var name : String
39
39
}
40
40
41
- enum JavaModifier {
42
- // Access modifiers
43
- case `public`
44
- case `private`
45
- case `protected`
46
-
47
- // Non-access modifiers.
48
- case `final`
49
- case `static`
50
- case `abstract`
51
- case `transient`
52
- case `synchronized`
53
- case `volatile`
54
- }
55
-
56
- struct JavaMethodSignature {
57
- var modifiers : [ JavaModifier ]
58
- var returnType : JavaType
59
- var parameters : [ JavaParameter ]
60
- }
61
-
41
+ /// Represent a Swift API parameter translated to Java.
62
42
struct TranslatedParameter {
43
+ /// Java parameter(s) mapped to the Swift parameter.
44
+ ///
45
+ /// Array because one Swift parameter can be mapped to multiple parameters.
63
46
var javaParameters : [ JavaParameter ]
47
+
48
+ /// Describes how to convert the Java parameter to the lowered arguments for
49
+ /// the foreign function.
64
50
var conversion : JavaConversionStep
65
51
}
66
52
53
+ /// Represent a Swift API result translated to Java.
67
54
struct TranslatedResult {
55
+ /// Java type that represents the Swift result type.
68
56
var javaResultType : JavaType
57
+
58
+ /// Required indirect return receivers for receiving the result.
59
+ ///
60
+ /// 'JavaParameter.name' is the suffix for the receiver variable names. For example
61
+ ///
62
+ /// var _result_pointer = MemorySegment.allocate(...)
63
+ /// var _result_count = MemroySegment.allocate(...)
64
+ /// downCall(_result_pointer, _result_count)
65
+ /// return constructResult(_result_pointer, _result_count)
66
+ ///
67
+ /// This case, there're two out parameter, named '_pointer' and '_count'.
69
68
var outParameters : [ JavaParameter ]
69
+
70
+ /// Describes how to construct the Java result from the foreign function return
71
+ /// value and/or the out parameters.
70
72
var conversion : JavaConversionStep
71
73
}
72
74
75
+ /// Translated function signature representing a Swift API.
76
+ ///
77
+ /// Since this holds the lowered signature, and the original `SwiftFunctionSignature`
78
+ /// in it, this contains all the API information (except the name) to generate the
79
+ /// cdecl thunk, Java binding, and the Java wrapper function.
73
80
struct TranslatedFunctionSignature {
74
81
var loweredSignature : LoweredFunctionSignature
75
82
76
- ///
77
83
var selfParameter : TranslatedParameter ?
78
84
var parameters : [ TranslatedParameter ]
79
85
var result : TranslatedResult
@@ -304,7 +310,7 @@ struct JavaTranslation {
304
310
return TranslatedResult (
305
311
javaResultType: javaType,
306
312
outParameters: [
307
- JavaParameter ( type: javaType, name: " _result " )
313
+ JavaParameter ( type: javaType, name: " " )
308
314
] ,
309
315
conversion: . constructSwiftValue( javaType)
310
316
)
@@ -341,7 +347,7 @@ enum JavaConversionStep {
341
347
// If `withArena` is true, `arena$` argument is added.
342
348
case call( function: String , withArena: Bool )
343
349
344
- // Call '\(Type)(\(placeholder), arena $)'.
350
+ // Call 'new \(Type)(\(placeholder), swiftArena $)'.
345
351
case constructSwiftValue( JavaType )
346
352
347
353
// Construct the type using the placeholder as arguments.
0 commit comments