jextract/jni: Enum case record names can collide with enclosing types
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 57/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Bereich
- backend-api-design
Rechercherichtung
Read the jextract/jni enum extraction code and its generated Java output for the Message example. Trace how Swift case names determine record names, payload accessors, and case dispatch; check the generated output with a case that collides with an enclosing type. Done means the generated record avoids the collision and its accessor and dispatch names stay consistent.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
JNI enum extraction capitalizes each Swift case name to generate a nested Java record. That record can have the same name as its enum, another enclosing type, or the generated Case interface. Java rejects these declarations because a nested type cannot share an enclosing type's name.
Example
public enum Message {
case message(Int64)
}
The generated Java code contains a record named Message inside Message.Case. This conflicts with the enclosing Message type and causes Java compilation to fail.
The generated record name should avoid collisions with enclosing types. Its payload accessor and case dispatch should use the same name consistently.
Reference workaround implementation: https://github.com/qoncept/swift-java/pull/7
- Vorherrschende Sprache
- Swift
- Sterne
- 1.3k
- Forks
- 129
- Ø Merge
- 7 Std. 16 Min.
- Gemergte PRs (30 T.)
- 4
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus swiftlang/swift-java
-
wrap-java: Optional convenience methods can fail to compile when a parameter shadows the method nameOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
swiftlang/swift-java#945 ·
Maintainer antworten meist innerhalb von 1 Tag
-
android
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
swiftlang/swift-java#663 · 4 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 56/100
swiftlang/swift-java#949 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
swiftlang/swift-java#948 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 54/100
swiftlang/swift-java#947 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in swiftlang/swift-java
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
MasterJ93/ATProtoKit#344 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 67/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
d-date/google-mlkit-swiftpm#124 ·
-
🎉 Add WoundOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 77/100
jaywcjlove/awesome-mac#4357 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100