BurntSushi/quickcheck

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

Open

#261 aperta il 27 nov 2020

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

Metriche repository

Star
 (2763 star)
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