diff --git a/src/hyperlight_component_util/src/guest.rs b/src/hyperlight_component_util/src/guest.rs index 864f9cd0f..c4db964c3 100644 --- a/src/hyperlight_component_util/src/guest.rs +++ b/src/hyperlight_component_util/src/guest.rs @@ -68,6 +68,7 @@ fn emit_import_extern_decl<'a, 'b, 'c>( ResourceItemName::Static(mn) => quote! { #mn }, }, }; + // Use unmarshal directly since empty TokenStream generates no code let decl = quote! { fn #n(&mut self, #(#param_decls),*) -> #result_decl { let mut args = ::alloc::vec::Vec::new(); @@ -78,7 +79,6 @@ fn emit_import_extern_decl<'a, 'b, 'c>( ::hyperlight_common::flatbuffer_wrappers::function_types::ReturnType::VecBytes, ); let ::core::result::Result::Ok(#ret) = #ret else { panic!("bad return from guest {:?}", #ret) }; - #[allow(clippy::unused_unit)] #unmarshal } }; diff --git a/src/hyperlight_component_util/src/hl.rs b/src/hyperlight_component_util/src/hl.rs index 5a8e984f3..097c07f3d 100644 --- a/src/hyperlight_component_util/src/hl.rs +++ b/src/hyperlight_component_util/src/hl.rs @@ -655,7 +655,7 @@ pub fn emit_hl_unmarshal_param(s: &mut State, id: Ident, pt: &Value) -> TokenStr /// are no names in it (i.e. a unit type) pub fn emit_hl_unmarshal_result(s: &mut State, id: Ident, rt: &etypes::Result) -> TokenStream { match rt { - etypes::Result::Named(rs) if rs.is_empty() => quote! { () }, + etypes::Result::Named(rs) if rs.is_empty() => TokenStream::new(), etypes::Result::Unnamed(vt) => { let toks = emit_hl_unmarshal_value(s, id, vt); quote! { { #toks }.0 } diff --git a/src/tests/rust_guests/witguest/Cargo.lock b/src/tests/rust_guests/witguest/Cargo.lock index 478740f35..abb8b2d24 100644 --- a/src/tests/rust_guests/witguest/Cargo.lock +++ b/src/tests/rust_guests/witguest/Cargo.lock @@ -337,9 +337,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55" +checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" dependencies = [ "proc-macro2", "syn", @@ -477,9 +477,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.103" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", diff --git a/src/tests/rust_guests/witguest/guest.wit b/src/tests/rust_guests/witguest/guest.wit index 5242fa1de..efa1052d1 100644 --- a/src/tests/rust_guests/witguest/guest.wit +++ b/src/tests/rust_guests/witguest/guest.wit @@ -53,6 +53,8 @@ interface roundtrip { enum-a, enum-b, enum-c } roundtrip-enum: func(x: testenum) -> testenum; + // Test case for void return function (no clippy unused_unit warnings) + do-something: func(number: u32); } interface host-resource { diff --git a/src/tests/rust_guests/witguest/src/main.rs b/src/tests/rust_guests/witguest/src/main.rs index 9fcabe087..bddea0659 100644 --- a/src/tests/rust_guests/witguest/src/main.rs +++ b/src/tests/rust_guests/witguest/src/main.rs @@ -113,6 +113,9 @@ impl test::wit::Roundtrip for Guest { ) -> test::wit::roundtrip::Testenum { (Host {}).roundtrip_enum(x) } + fn do_something(&mut self, number: u32) { + (Host {}).do_something(number) + } } impl test::wit::TestHostResource for Guest {