File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1414
1515public enum EnumWithValueCases {
1616 case firstCase( UInt )
17+ case secondCase
1718}
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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: " , " ) ) ) {} " )
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments