Store WasmFuncType in FuncType (#2365)

This commit updates `wasmtime::FuncType` to exactly store an internal
`WasmFuncType` from the cranelift crates. This allows us to remove a
translation layer when we are given a `FuncType` and want to get an
internal cranelift type out as a result.

The other major change from this commit was changing the constructor and
accessors of `FuncType` to be iterator-based instead of exposing
implementation details.
This commit is contained in:
Alex Crichton
2020-11-05 08:49:03 -06:00
committed by GitHub
parent ea3306e74c
commit a277cf5ee4
13 changed files with 118 additions and 150 deletions

View File

@@ -20,7 +20,7 @@ fn same_import_names_still_distinct() -> anyhow::Result<()> {
let imports = [
Func::new(
&store,
FuncType::new(Box::new([]), Box::new([ValType::I32])),
FuncType::new(None, Some(ValType::I32)),
|_, params, results| {
assert!(params.is_empty());
assert_eq!(results.len(), 1);
@@ -31,7 +31,7 @@ fn same_import_names_still_distinct() -> anyhow::Result<()> {
.into(),
Func::new(
&store,
FuncType::new(Box::new([]), Box::new([ValType::F32])),
FuncType::new(None, Some(ValType::F32)),
|_, params, results| {
assert!(params.is_empty());
assert_eq!(results.len(), 1);