Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
We have not been receiving updates to syn for a while, because we are on syn 1 still. Update to syn 2 and lift it into the workspace, which requires revamping how several `proc_macro_attribute`s are parsed. In the process, sprinkle pgrx-sql-entity-graph with paranoid amounts of `track_caller`, expects, and compound errors on the unhappy path, to try to make the code start producing useful error spans. Then also drop unused features from some of our dependencies to completely erase syn 1 from the dependency tree. We don't meddle with any compressible sections, because we just look at exported symbols, not debuginfo, so I believe this is inconsequential. It's acceptable to revert that part of this change, however, if it doesn't actually work. Removes 4 crates from the dependency tree The syn changes include: - `syn::LifetimeDef` is now `LifetimeParam` - `syn::ImplItem::Method` is now `syn::ImplItem::Fn` - `syn::ImplItemMethod` is now `syn::ImplItemFn` - Type ascription && `syn::Expr::Type` no longer exist - `syn::MetaNameValue` replaces its `lit` field with `value`, as it accepts non-literals - `syn::GenericArgument::Binding` is now `GenericArgument::AssocType` - `syn::Attribute` hid its `path` field as `.path()` - `syn::Attribute` hid its `token` field, so there is only `ToTokens` - `syn::Attribute` changed how it structures access to its args. We now parse inner args of a `syn::Attribute` for our proc-macro attributes like `#[pg_operator]`, without considering parentheses.
- Loading branch information