Fix some wit-bindgen-related issues with generated bindings (#5692)
* Prefix component-bindgen-generated-functions with `call_` This fixes clashes between Rust-native methods and the methods themselves. For example right now `new` is a Rust-generated function for constructing the wrapper but this can conflict with a world-exported function called `new`. Closes #5585 * Fix types being both shared and owned This refactors some inherited cruft from the original `wit-bindgen` repository to be more Wasmtime-specific and fixes a codegen case where a type was used in both a shared and an owned context. Closes #5688
This commit is contained in:
3
crates/component-macro/tests/codegen/function-new.wit
Normal file
3
crates/component-macro/tests/codegen/function-new.wit
Normal file
@@ -0,0 +1,3 @@
|
||||
default world foo {
|
||||
export new: func()
|
||||
}
|
||||
19
crates/component-macro/tests/codegen/share-types.wit
Normal file
19
crates/component-macro/tests/codegen/share-types.wit
Normal file
@@ -0,0 +1,19 @@
|
||||
interface http-types{
|
||||
record request {
|
||||
method: string
|
||||
}
|
||||
record response {
|
||||
body: string
|
||||
}
|
||||
}
|
||||
|
||||
default world http-interface {
|
||||
export http-handler: interface {
|
||||
use self.http-types.{request,response}
|
||||
handle-request: func(request: request) -> response
|
||||
}
|
||||
import http-fetch: interface {
|
||||
use self.http-types.{request,response}
|
||||
fetch-request: func(request: request) -> response
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user