BurntSushi/quickcheck

Trivial cast error when using `#[quickcheck]` inside macro

Aperta

#261 aperta il 27 nov 2020

 (1 commento) (0 reazioni) (0 assegnatari)Rust (161 fork)github user discovery
enhancementhelp wanted

Metriche repository

Star
 (2763 stelle)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

This is a minimal example:

crate::my_macro!(u32);

#[macro_export]
macro_rules! my_macro {
    ($my_type:ty) => {
        #[quickcheck]
        fn fuzz_my_type(my: $my_type) {
            // ...
        }
    }
}

Results in

error: trivial cast: `fn(u32) {fuzz_my_type::fuzz_my_type}` as `fn(u32)`
   --> ~/fuzz_tests.rs:13:9
    |
  2 |   crate::my_macro!(u32);
    |   ---------------------- in this macro invocation
... 
 13 | /         #[quickcheck]
 14 | |         fn fuzz_my_type(my: $my_type) {
    | |_______________________^

It works if I add #[allow(trivial_casts)], but it should work without flags to the compiler.

Guida contributor