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.
* "skipped" is unnecessary: it's always false at depth == 0,
so its one use in "if depth == 0 && !skipped" can be removed.
* the element doesn't need a binding, and shadowing "named_element"
confused me.
* remove old commented-out path that errored on unknown elements
* Log the depth of elements as they're fetched
* Log the starting depth of structs/enums and their Rust symbol names
(not just XML element names, which may differ significantly)
* Log every element in the struct/enum match loop at trace level.
* Log file/line numbers at a few key points in the tests.
This is helpful in finding failures happen in some of the longer
tests.
This logging helps me understand the data flow as I play with changes
for #76.
Crates within a workspace aren't supposed to have their own "target"
directories. But yet these directories appear when I edit files with vim
and YouCompleteMe. Ignoring them makes tools like "rg" more pleasant to
use.
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.