Skip to content

Commit 3086055

Browse files
committed
Skip printing for no associated value cases
1 parent 6c4d9f7 commit 3086055

4 files changed

Lines changed: 14 additions & 7 deletions

File tree

Samples/SwiftJavaExtractJNISampleApp/Sources/MySwiftLibrary/EnumWithValueCases.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@
1414

1515
public enum EnumWithValueCases {
1616
case firstCase(UInt)
17+
case secondCase
1718
}

Sources/JExtractSwiftLib/JNI/JNICaching.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,8 @@ enum JNICaching {
2828
static func cacheMemberName(for enumCase: ImportedEnumCase) -> String {
2929
"\(enumCase.enumType.nominalTypeDecl.name.firstCharacterLowercased)\(enumCase.name.firstCharacterUppercased)Cache"
3030
}
31+
32+
static func cacheMemberName(for translatedEnumCase: JNISwift2JavaGenerator.TranslatedEnumCase) -> String {
33+
cacheMemberName(for: translatedEnumCase.original)
34+
}
3135
}

Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+JavaBindingsPrinting.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,10 +506,10 @@ extension JNISwift2JavaGenerator {
506506
// Print record
507507
printer.printBraceBlock("public record \(caseName)(\(members.joined(separator: ", "))) implements Case") {
508508
printer in
509-
let nativeParameters = zip(translatedCase.translatedValues, translatedCase.parameterConversions).flatMap {
509+
let nativeParameters = zip(translatedCase.translatedValues, translatedCase.parameterConversions).map {
510510
value,
511511
conversion in
512-
["\(conversion.native.javaType) \(value.parameter.name)"]
512+
"\(conversion.native.javaType) \(value.parameter.name)"
513513
}
514514

515515
printer.print("record _NativeParameters(\(nativeParameters.joined(separator: ", "))) {}")

Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+SwiftThunkPrinting.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,15 +174,17 @@ extension JNISwift2JavaGenerator {
174174
}
175175

176176
private func printJNICache(_ printer: inout CodePrinter, _ type: ImportedNominalType) {
177-
if type.cases.isEmpty {
177+
let targetCases = type.cases
178+
.compactMap(translatedEnumCase(for:))
179+
.filter { !$0.translatedValues.isEmpty }
180+
if targetCases.isEmpty {
178181
return
179182
}
180-
183+
181184
printer.printBraceBlock("enum \(JNICaching.cacheName(for: type))") { printer in
182-
for enumCase in type.cases {
183-
guard let translatedCase = translatedEnumCase(for: enumCase) else { continue }
185+
for translatedCase in targetCases {
184186
printer.print(
185-
"static let \(JNICaching.cacheMemberName(for: enumCase)) = \(renderEnumCaseCacheInit(translatedCase))"
187+
"static let \(JNICaching.cacheMemberName(for: translatedCase)) = \(renderEnumCaseCacheInit(translatedCase))"
186188
)
187189
}
188190
}

0 commit comments

Comments
 (0)