async-sqlx-session icon indicating copy to clipboard operation
async-sqlx-session copied to clipboard

Sqlx macros fails on build, every time

Open rogusdev opened this issue 1 year ago • 1 comments

Repro steps:

cargo new bad-sqlx-sessions
cd bad-sqlx-sessions
cargo add async-sqlx-session -F pg
cargo run

It will fail to build. Error text below because it is so long, but the punchline is the version of sqlx-macros used in this project is broken from the start, as discussed here: https://github.com/launchbadge/sqlx/issues/2418 .

The "fix" from a consumer perspective is easy, just cargo add sqlx and then I get the updated sqlx macros and everything works -- and I expect most people using this package will want sqlx as well. But this package is still technically broken in its current state. I would think the fix is simply to update https://github.com/jbr/async-sqlx-session/blob/main/Cargo.toml -- but the version of sqlx in that is 0.6.2 whereas the errors for sqlx-macros are coming from 0.5.13 . Perhaps those versions are not kept in sync, but if they are, maybe the problem is coming from somewhere else.

Errors building:

...
   Compiling async-session v3.0.0
   Compiling sqlx-macros v0.5.13
error[E0432]: unresolved import `syn::spanned`
 --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/attributes.rs:4:10
  |
4 | use syn::spanned::Spanned;
  |          ^^^^^^^ could not find `spanned` in `syn`

error[E0432]: unresolved import `syn::DeriveInput`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/attributes.rs:6:22
    |
6   | use syn::{Attribute, DeriveInput, Field, Lit, Meta, MetaNameValue, NestedMeta, Variant};
    |                      ^^^^^^^^^^^ no `DeriveInput` in the root
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:64
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                                                ^^^^^^^^^^^
    = note: the item is gated behind the `derive` feature

error[E0432]: unresolved imports `syn::parse_quote`, `syn::Data`, `syn::DataEnum`, `syn::DataStruct`, `syn::DeriveInput`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:11:5
    |
11  |     parse_quote, Arm, Data, DataEnum, DataStruct, DeriveInput, Field, Fields, FieldsNamed,
    |     ^^^^^^^^^^^       ^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^ no `DeriveInput` in the root
    |     |                 |     |         |
    |     |                 |     |         no `DataStruct` in the root
    |     |                 |     no `DataEnum` in the root
    |     |                 no `Data` in the root
    |     no `parse_quote` in the root
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:443:9
    |
443 | pub mod parse_quote;
    |         ^^^^^^^^^^^
    = note: the item is gated behind the `parsing` feature
    = help: consider importing this variant instead:
            serde_json::error::Category::Data
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:25
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                         ^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:31
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                               ^^^^^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:41
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                         ^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:64
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                                                ^^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
help: a similar name exists in the module
    |
11  |     parse_quote, Arm, data, DataEnum, DataStruct, DeriveInput, Field, Fields, FieldsNamed,
    |                       ~~~~
help: a similar name exists in the module
    |
11  |     parse_quote, Arm, Data, DataEnum, PatStruct, DeriveInput, Field, Fields, FieldsNamed,
    |                                       ~~~~~~~~~

error[E0432]: unresolved imports `syn::parse_quote`, `syn::Data`, `syn::DataEnum`, `syn::DataStruct`, `syn::DeriveInput`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/encode.rs:11:5
    |
11  |     parse_quote, Data, DataEnum, DataStruct, DeriveInput, Expr, Field, Fields, FieldsNamed,
    |     ^^^^^^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^ no `DeriveInput` in the root
    |     |            |     |         |
    |     |            |     |         no `DataStruct` in the root
    |     |            |     no `DataEnum` in the root
    |     |            no `Data` in the root
    |     no `parse_quote` in the root
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:443:9
    |
443 | pub mod parse_quote;
    |         ^^^^^^^^^^^
    = note: the item is gated behind the `parsing` feature
    = help: consider importing this variant instead:
            serde_json::error::Category::Data
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:25
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                         ^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:31
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                               ^^^^^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:41
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                         ^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:64
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                                                ^^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
help: a similar name exists in the module
    |
11  |     parse_quote, data, DataEnum, DataStruct, DeriveInput, Expr, Field, Fields, FieldsNamed,
    |                  ~~~~
help: a similar name exists in the module
    |
11  |     parse_quote, Data, DataEnum, PatStruct, DeriveInput, Expr, Field, Fields, FieldsNamed,
    |                                  ~~~~~~~~~

error[E0432]: unresolved imports `syn::parse_quote`, `syn::Data`, `syn::DataStruct`, `syn::DeriveInput`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:4:5
    |
4   |     parse_quote, punctuated::Punctuated, token::Comma, Data, DataStruct, DeriveInput, Field,
    |     ^^^^^^^^^^^                                        ^^^^  ^^^^^^^^^^  ^^^^^^^^^^^ no `DeriveInput` in the root
    |     |                                                  |     |
    |     |                                                  |     no `DataStruct` in the root
    |     no `parse_quote` in the root                       no `Data` in the root
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:443:9
    |
443 | pub mod parse_quote;
    |         ^^^^^^^^^^^
    = note: the item is gated behind the `parsing` feature
    = help: consider importing this variant instead:
            serde_json::error::Category::Data
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:25
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                         ^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:41
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                         ^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:64
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                                                ^^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
help: a similar name exists in the module
    |
4   |     parse_quote, punctuated::Punctuated, token::Comma, data, DataStruct, DeriveInput, Field,
    |                                                        ~~~~
help: a similar name exists in the module
    |
4   |     parse_quote, punctuated::Punctuated, token::Comma, Data, PatStruct, DeriveInput, Field,
    |                                                              ~~~~~~~~~

error[E0432]: unresolved imports `syn::parse_quote`, `syn::Data`, `syn::DataEnum`, `syn::DataStruct`, `syn::DeriveInput`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/type.rs:10:5
    |
10  |     parse_quote, Data, DataEnum, DataStruct, DeriveInput, Field, Fields, FieldsNamed,
    |     ^^^^^^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^ no `DeriveInput` in the root
    |     |            |     |         |
    |     |            |     |         no `DataStruct` in the root
    |     |            |     no `DataEnum` in the root
    |     |            no `Data` in the root
    |     no `parse_quote` in the root
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:443:9
    |
443 | pub mod parse_quote;
    |         ^^^^^^^^^^^
    = note: the item is gated behind the `parsing` feature
    = help: consider importing this variant instead:
            serde_json::error::Category::Data
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:25
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                         ^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:31
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                               ^^^^^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:41
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                         ^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:64
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                                                ^^^^^^^^^^^
    = note: the item is gated behind the `derive` feature
help: a similar name exists in the module
    |
10  |     parse_quote, data, DataEnum, DataStruct, DeriveInput, Field, Fields, FieldsNamed,
    |                  ~~~~
help: a similar name exists in the module
    |
10  |     parse_quote, Data, DataEnum, PatStruct, DeriveInput, Field, Fields, FieldsNamed,
    |                                  ~~~~~~~~~

error[E0432]: unresolved import `syn::DeriveInput`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/mod.rs:16:5
    |
16  | use syn::DeriveInput;
    |     ^^^^^^^^^^^^^^^^ no `DeriveInput` in the root
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:392:64
    |
392 | pub use crate::derive::{Data, DataEnum, DataStruct, DataUnion, DeriveInput};
    |                                                                ^^^^^^^^^^^
    = note: the item is gated behind the `derive` feature

error[E0432]: unresolved import `syn::spanned`
 --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/query/args.rs:7:10
  |
7 | use syn::spanned::Spanned;
  |          ^^^^^^^ could not find `spanned` in `syn`

error[E0432]: unresolved import `syn::parse`
 --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/query/input.rs:4:10
  |
4 | use syn::parse::{Parse, ParseStream};
  |          ^^^^^ could not find `parse` in `syn`

error[E0432]: unresolved import `syn::parse`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/query/output.rs:12:10
   |
12 | use syn::parse::{Parse, ParseStream};
   |          ^^^^^ could not find `parse` in `syn`

error[E0433]: failed to resolve: could not find `parse_macro_input` in `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/lib.rs:29:22
    |
29  |     let input = syn::parse_macro_input!(input as query::QueryMacroInput);
    |                      ^^^^^^^^^^^^^^^^^ could not find `parse_macro_input` in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:452:9
    |
452 | pub mod parse_macro_input;
    |         ^^^^^^^^^^^^^^^^^

error[E0433]: failed to resolve: could not find `parse_macro_input` in `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/lib.rs:46:22
    |
46  |     let input = syn::parse_macro_input!(tokenstream as syn::DeriveInput);
    |                      ^^^^^^^^^^^^^^^^^ could not find `parse_macro_input` in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:452:9
    |
452 | pub mod parse_macro_input;
    |         ^^^^^^^^^^^^^^^^^

error[E0433]: failed to resolve: could not find `parse_macro_input` in `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/lib.rs:55:22
    |
55  |     let input = syn::parse_macro_input!(tokenstream as syn::DeriveInput);
    |                      ^^^^^^^^^^^^^^^^^ could not find `parse_macro_input` in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:452:9
    |
452 | pub mod parse_macro_input;
    |         ^^^^^^^^^^^^^^^^^

error[E0433]: failed to resolve: could not find `parse_macro_input` in `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/lib.rs:64:22
    |
64  |     let input = syn::parse_macro_input!(tokenstream as syn::DeriveInput);
    |                      ^^^^^^^^^^^^^^^^^ could not find `parse_macro_input` in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:452:9
    |
452 | pub mod parse_macro_input;
    |         ^^^^^^^^^^^^^^^^^

error[E0433]: failed to resolve: could not find `parse_macro_input` in `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/lib.rs:73:22
    |
73  |     let input = syn::parse_macro_input!(input as syn::DeriveInput);
    |                      ^^^^^^^^^^^^^^^^^ could not find `parse_macro_input` in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:452:9
    |
452 | pub mod parse_macro_input;
    |         ^^^^^^^^^^^^^^^^^

error[E0433]: failed to resolve: could not find `parse_macro_input` in `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/lib.rs:86:22
    |
86  |     let input = syn::parse_macro_input!(input as LitStr);
    |                      ^^^^^^^^^^^^^^^^^ could not find `parse_macro_input` in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:452:9
    |
452 | pub mod parse_macro_input;
    |         ^^^^^^^^^^^^^^^^^

error[E0433]: failed to resolve: could not find `parse_macro_input` in `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/lib.rs:103:22
    |
103 |     let input = syn::parse_macro_input!(input as syn::ItemFn);
    |                      ^^^^^^^^^^^^^^^^^ could not find `parse_macro_input` in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:452:9
    |
452 | pub mod parse_macro_input;
    |         ^^^^^^^^^^^^^^^^^

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:67:20
   |
67 |         .insert(0, parse_quote!(DB: ::sqlx::Database));
   |                    ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:68:31
   |
68 |     generics.params.insert(0, parse_quote!('r));
   |                               ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:72:15
   |
72 |         .push(parse_quote!(#ty: ::sqlx::decode::Decode<'r, DB>));
   |               ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:155:13
    |
155 |             parse_quote!(#rename => ::std::result::Result::Ok(#ident :: #id),)
    |             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:159:13
    |
159 |             parse_quote!(#name => ::std::result::Result::Ok(#ident :: #id),)
    |             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:162:13
    |
162 |             parse_quote!(#name => ::std::result::Result::Ok(#ident :: #id),)
    |             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:274:35
    |
274 |         generics.params.insert(0, parse_quote!('r));
    |                                   ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:281:29
    |
281 |             predicates.push(parse_quote!(#ty: ::sqlx::decode::Decode<'r, ::sqlx::Postgres>));
    |                             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:282:29
    |
282 |             predicates.push(parse_quote!(#ty: ::sqlx::types::Type<::sqlx::Postgres>));
    |                             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:291:13
    |
291 |             parse_quote!(
    |             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/encode.rs:73:20
   |
73 |         .insert(0, parse_quote!(DB: ::sqlx::Database));
   |                    ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/encode.rs:77:15
   |
77 |         .push(parse_quote!(#ty: ::sqlx::encode::Encode<#lifetime, DB>));
   |               ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/encode.rs:221:23
    |
221 |                 .push(parse_quote!(#ty: for<'q> ::sqlx::encode::Encode<'q, ::sqlx::Postgres>));
    |                       ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/encode.rs:222:29
    |
222 |             predicates.push(parse_quote!(#ty: ::sqlx::types::Type<::sqlx::Postgres>));
    |                             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/encode.rs:230:13
    |
230 |             parse_quote!(
    |             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/encode.rs:239:13
    |
239 |             parse_quote!(
    |             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:56:31
   |
56 |     generics.params.insert(0, parse_quote!(R: ::sqlx::Row));
   |                               ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:59:35
   |
59 |         generics.params.insert(0, parse_quote!(#lifetime));
   |                                   ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:64:21
   |
64 |     predicates.push(parse_quote!(&#lifetime ::std::primitive::str: ::sqlx::ColumnIndex<R>));
   |                     ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:69:25
   |
69 |         predicates.push(parse_quote!(#ty: ::sqlx::decode::Decode<#lifetime, R::Database>));
   |                         ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:70:25
   |
70 |         predicates.push(parse_quote!(#ty: ::sqlx::types::Type<R::Database>));
   |                         ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:93:17
   |
93 |                 parse_quote!(let #id: #ty = row.try_get(#id_s).or_else(|e| match e {
   |                 ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:101:18
    |
101 |             Some(parse_quote!(
    |                  ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:140:31
    |
140 |     generics.params.insert(0, parse_quote!(R: ::sqlx::Row));
    |                               ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:143:35
    |
143 |         generics.params.insert(0, parse_quote!(#lifetime));
    |                                   ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:148:21
    |
148 |     predicates.push(parse_quote!(
    |                     ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:155:25
    |
155 |         predicates.push(parse_quote!(#ty: ::sqlx::decode::Decode<#lifetime, R::Database>));
    |                         ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/row.rs:156:25
    |
156 |         predicates.push(parse_quote!(#ty: ::sqlx::types::Type<R::Database>));
    |                         ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/type.rs:65:24
   |
65 |             .insert(0, parse_quote!(DB: ::sqlx::Database));
   |                        ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
  --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/type.rs:69:19
   |
69 |             .push(parse_quote!(#ty: ::sqlx::Type<DB>));
   |                   ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the macro `parse_quote`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/derives/decode.rs:108:13
    |
108 |             parse_quote! {
    |             ^^^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

error[E0425]: cannot find function `parse_str` in crate `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/database/mod.rs:18:14
    |
18  |         syn::parse_str(Self::DATABASE_PATH).unwrap()
    |              ^^^^^^^^^ not found in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:917:8
    |
917 | pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T> {
    |        ^^^^^^^^^
    = note: the item is gated behind the `parsing` feature

error[E0425]: cannot find function `parse_str` in crate `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/database/mod.rs:22:14
    |
22  |         syn::parse_str(Self::ROW_PATH).unwrap()
    |              ^^^^^^^^^ not found in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:917:8
    |
917 | pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T> {
    |        ^^^^^^^^^
    = note: the item is gated behind the `parsing` feature

error[E0425]: cannot find function `parse_str` in crate `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/query/output.rs:270:22
    |
270 |                 syn::parse_str(remainder)?
    |                      ^^^^^^^^^ not found in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:917:8
    |
917 | pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T> {
    |        ^^^^^^^^^
    = note: the item is gated behind the `parsing` feature

error[E0425]: cannot find function `parse_str` in crate `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/query/output.rs:325:33
    |
325 |         if let Ok(ident) = syn::parse_str(&ident) {
    |                                 ^^^^^^^^^ not found in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:917:8
    |
917 | pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T> {
    |        ^^^^^^^^^
    = note: the item is gated behind the `parsing` feature

error[E0425]: cannot find function `parse_str` in crate `syn`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-macros-0.5.13/src/query/mod.rs:318:46
    |
318 |                 let record_name: Type = syn::parse_str("Record").unwrap();
    |                                              ^^^^^^^^^ not found in `syn`
    |
note: found an item that was configured out
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/src/lib.rs:917:8
    |
917 | pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T> {
    |        ^^^^^^^^^
    = note: the item is gated behind the `parsing` feature

Some errors have detailed explanations: E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0425`.
error: could not compile `sqlx-macros` (lib) due to 53 previous errors

rogusdev avatar Sep 29 '23 17:09 rogusdev

Ah, it seems that the reason the current Cargo.toml is fine, is because main has moved past this bug in 0.4.0 thanks to dependabot: https://github.com/jbr/async-sqlx-session/commit/3d8523de34a7290be9a7a681d6bd4c191d8915f3

So, the fix then is to simply publish a new version of the crate. Seems like it is due for that!

rogusdev avatar Sep 29 '23 17:09 rogusdev