diff options
author | HampusM <hampus@hampusmat.com> | 2023-03-19 18:11:00 +0100 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2023-03-19 18:11:00 +0100 |
commit | b20400e80f5737f39fad83546c9a60921d88b8bd (patch) | |
tree | 1245ef7b4d172ac19c4d21b0c20f397cbba8c164 | |
parent | f73c3218b9a004fb405386ce2623d2dfa077388c (diff) |
refactor: skip transmuting expectations without generics
-rw-r--r-- | macros/src/expectation.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/macros/src/expectation.rs b/macros/src/expectation.rs index 5a4922c..a6d181f 100644 --- a/macros/src/expectation.rs +++ b/macros/src/expectation.rs @@ -278,6 +278,12 @@ impl ToTokens for Expectation let (boundless_impl_generics, _, _) = boundless_generics.split_for_impl(); + let do_strip_generic_params = if generic_params.is_empty() { + quote! { self } + } else { + quote! { unsafe { std::mem::transmute(self) } } + }; + quote! { #expectation_struct @@ -323,7 +329,7 @@ impl ToTokens for Expectation self, ) -> #ident<#(#bogus_generics),*> { - unsafe { std::mem::transmute(self) } + #do_strip_generic_params } fn get_returning(&self) -> &#returning_fn |