swiftwasm / swiftwasm/JavaScriptKit
Mutating functions are not supported on structs
Offen
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Swift
- Sterne
- 986
- Forks
- 76
- Ø Merge
- 21 Std. 11 Min.
- Gemergte PRs (30 T.)
- 4
Beschreibung
Marking a mutating function on a structure @JS results in a compilation failure in the generated code.
For example, this struct generates code which fails to compile.
@JS struct Counter {
var number: Int
@JS public mutating func increment() {
number += 1
}
}
@_expose(wasm, "bjs_Counter_increment")
@_cdecl("bjs_Counter_increment")
public func _bjs_Counter_increment() -> Void {
#if arch(wasm32)
Counter.bridgeJSLiftParameter().increment() // error: cannot use mutating member on immutable value: function call returns immutable value
#else
fatalError("Only available on WebAssembly")
#endif
}
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der @JS-struct-Behandlung und dem im Issue gezeigten generierten _bjs_Counter_increment-Wrapper und reproduziere anschließend den Kompilierungsfehler mit dem Counter-Beispiel. Erledigt ist es, wenn eine @JS-struct mit einer mutierenden Funktion Code generiert, der erfolgreich für WebAssembly kompiliert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, swift, wasm
- Bereich
- compilers, web-dev
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 52/100