BurntSushi/quickcheck

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

Open

#261 ouverte le 27 nov. 2020

Voir sur GitHub
 (1 commentaire) (0 réactions) (0 assignés)Rust (161 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (2 763 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

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.

Guide contributeur