BurntSushi/quickcheck

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

Ouverte

#261 ouverte le 27 nov. 2020

 (1 commentaire) (0 réaction) (0 personne assignée)Rust (161 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (2 763 étoiles)
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