BurntSushi/quickcheck

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

Open

#261 opened on 2020年11月27日

GitHub で見る
 (1 comment) (0 reactions) (0 assignees)Rust (161 forks)github user discovery
enhancementhelp wanted

Repository metrics

Stars
 (2,763 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

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.

コントリビューターガイド