wit-bindgen icon indicating copy to clipboard operation
wit-bindgen copied to clipboard

rust: Stream/future bindings fail with root-level export function

Open alexcrichton opened this issue 4 months ago • 0 comments

This input:

wit_bindgen::generate!({
    inline: r#"
        package a:b;

        world w {
            use t.{r};
            export f: func(p: stream<r>);
        }

        interface t {
            record r {
                x: u32,
            }
        }
    "#,
});

fn main() {}

fails with:

$ cargo build --target wasm32-wasip1
   Compiling wat v0.1.0 (/home/alex/code/wat)
error[E0412]: cannot find type `R` in this scope
  --> src/main.rs:1:1
   |
 1 | / wit_bindgen::generate!({
 2 | |     inline: r#"
 3 | |         package a:b;
...  |
15 | |     "#,
16 | | });
   | |__^ not found in this scope
   |
   = help: consider importing one of these items:
           crate::R
           crate::a::b::t::R
   = note: this error originates in the macro `wit_bindgen::generate` (in Nightly builds, run with -Z macro-backtrace for more info)

For more information about this error, try `rustc --explain E0412`.
error: could not compile `wat` (bin "wat") due to 1 previous error

alexcrichton avatar Nov 24 '25 19:11 alexcrichton