jextract/jni: Overloads with protocol parameters generate duplicate adapter classes
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 53/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- backend-api-design
Direzione di ricerca
Start by reading the JNI extraction path that emits protocol-parameter adapters when enableJavaCallbacks is enabled; the issue does not name a file or test, so locate it from that option and the generated adapter name. Reproduce with the two Client initializers in the issue and inspect generated Swift for duplicate class declarations. Done when overloaded initializers, instance methods, and free functions that need the same adapter generate compilable Swift.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
With enableJavaCallbacks enabled, JNI extraction emits a protocol-parameter adapter for each function declaration. Overloads with the same function name, parameter name, and enclosing type can require the same adapter, so the generated Swift contains duplicate class declarations and fails to compile.
Example
Both initializers below generate an adapter with the same name for store:
public protocol Store {
func value() -> Int64
}
public struct Client {
public init(store: some Store) {}
public init(store: some Store, extra: Int64) {}
}
The duplicate adapter declarations cause the generated Swift to fail compilation. The same problem can occur with overloaded instance methods and free functions.
Reference workaround implementation: https://github.com/qoncept/swift-java/pull/9
- Lingua principale
- Swift
- Stelle
- 1.3k
- Fork
- 127
- Merge medio
- 2g 14h
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di swiftlang/swift-java
-
wrap-java: Optional convenience methods can fail to compile when a parameter shadows the method nameAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
swiftlang/swift-java#945 ·
I maintainer di solito rispondono entro 1 giorno
-
android
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
swiftlang/swift-java#663 · 4 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 56/100
swiftlang/swift-java#949 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
swiftlang/swift-java#948 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
swiftlang/swift-java#947 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di swiftlang/swift-java
Issue simili
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
nightscout/Trio#1741 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
deepsealabs/libdc-swift#107 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
alexandrereol/ethmensa#30 ·
-
addition
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 83/100
jaywcjlove/awesome-mac#4259 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
VictorKildahl/cra#192 ·
I maintainer di solito rispondono entro 1 giorno