If it is present on a field, that field should not be included in the output
If both "skip_serializing" and "skip_serializing_if" are present,
"skip_serializing" should take precedent.
With this, the derives should work with most of the crates and types
the generated code refers to being aliased.
Notably, methods are still mostly invoked using regular method syntax
so those coming from trait could still be aliased by outside code.
Currently, rustc does not pass the exact original TokenStream to
proc-macros in several cases. This has many undesirable effects, such as
losing correct location information in error message.
See rust-lang/rust#43081 for more details
In the future, rustc will begin passing the correct TokenStream to
proc-macros. As a result, `syn` may wrap a type in one or more
`syn::Type::Group`s (if the proc-macro input came from a `macro_rules!` expansion).
I've determined that this can cause `yaserde-derive` to fail to match
a `Type::Path`. This PR should properly handle nested groups, allowing
your crate to work with both old and new input.
If you have any questions, feel free to ask me. See rust-lang/rust#72622
for more details.