bytecodealliance / bytecodealliance/wit-bindgen
Handling of typenames that match Rust typenames
- Vorherrschende Sprache
- Rust
- Sterne
- 1.5k
- Forks
- 286
- Ø Merge
- 6 Std. 32 Min.
- Gemergte PRs (30 T.)
- 19
Beschreibung
Here is the minimal wit file:
```wit
record result {
data: list,
}
func: function() -> expected
```
Which yields the following error:
```
error[E0107]: this struct takes 0 generic arguments but 2 generic arguments were supplied
--> sdk/src/client.rs:1:1
|
1 | wit_bindgen_rust::import!("./wit/some.wit");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- help: remove these generics
| |
| expected 0 generic arguments
|
note: struct defined here, with 0 generic parameters
--> sdk/src/client.rs:1:1
|
1 | wit_bindgen_rust::import!("./wit/some.wit");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: this error originates in the macro `wit_bindgen_rust::import` (in Nightly builds, run with -Z macro-backtrace for more info)
```
It wasn't obvious what's going on, but the generated code contains the following:
```rust
pub fn func() -> Result{
```
We wit-bindgen should either emit some warnings/errors, or perhaps use full paths like `::core::result::Result`? The latter is common in macros for any other types, but I think it's not common for `Result` and `Option`, so not sure what is the best option.
The issue is pretty minor, though.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Reproduzieren Sie das minimale WIT-Beispiel und untersuchen Sie die von wit_bindgen_rust::import! erzeugte sdk/src/client.rs, insbesondere die Signatur Result. Verfolgen Sie, wo die Namen der generierten Typen ausgewählt werden; erledigt ist die Aufgabe, wenn das Beispiel nicht mehr mit Rusts Result-Typ kollidiert und ohne den gemeldeten Fehler E0107 kompiliert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100