Skip to content

Interface with an overlapping name used internally will cause build error #72

Open
@jsturtevant

Description

@jsturtevant

If you have a wit file with:

package wasi-sample:example;

world example {
  import host;
  export adder;
}

interface adder {
  add: func(left: u32, right: u32) -> u32;
  call-host-function: func(input: string);
}

interface host {
  host-function: func(input: string) -> string;
}

you will end up with errors

 Compiling hyperlight-wasm v0.1.0 (/home/jstur/projects/hyperlight-wasm/src/hyperlight_wasm)
error: failed to run custom build command for `hyperlight-wasm v0.1.0 (/home/jstur/projects/hyperlight-wasm/src/hyperlight_wasm)`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
  process didn't exit successfully: `/home/jstur/projects/hyperlight-wasm/target/debug/build/hyperlight-wasm-f9324c725c3b4d6a/build-script-build` (exit status: 101)
  --- stdout
  cargo::rerun-if-changed=/home/jstur/projects/hyperlight-wasm/src/wasm_runtime
  cargo::rerun-if-env-changed=WIT_WORLD

....

 warning: unused import: `hyperlight_guest_bin::host_comm::call_host_function`
    --> src/component.rs:31:5
     |
  31 | use hyperlight_guest_bin::host_comm::call_host_function;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = note: `#[warn(unused_imports)]` on by default

  error[E0107]: function takes 0 generic arguments but 1 generic argument was supplied
    --> src/component.rs:41:1
     |
  41 | hyperlight_wasm_macro::wasm_guest_bindgen!();
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 0 generic arguments
     |
  note: function defined here, with 0 generic parameters
    --> src/component.rs:41:1
     |
  41 | hyperlight_wasm_macro::wasm_guest_bindgen!();
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: this error originates in the macro `hyperlight_wasm_macro::wasm_guest_bindgen` (in Nightly builds, run with -Z macro-backtrace for more info)

  error[E0061]: this function takes 1 argument but 3 arguments were supplied
    --> src/component.rs:41:1
     |
  41 | hyperlight_wasm_macro::wasm_guest_bindgen!();
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     | |
     | expected `&FunctionCall`, found `&str`
     | unexpected argument #2 of type `core::option::Option<Vec<ParameterValue>>`
     | unexpected argument #3 of type `ReturnType`
     |
     = note: expected reference `&FunctionCall`
                found reference `&'static str`
  note: function defined here
    --> src/component.rs:41:1
     |
  41 | hyperlight_wasm_macro::wasm_guest_bindgen!();
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: this error originates in the macro `hyperlight_wasm_macro::wasm_guest_bindgen` (in Nightly builds, run with -Z macro-backtrace for more info)

looks like this might be caused because the relative call here:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions