- Notifications
You must be signed in to change notification settings - Fork 13.9k
Closed
Labels
C-bugCategory: This is a bug.Category: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
I tried this code:
// sqlx library
I expected compilation to succeed.
Instead, this happened: hangs for a while (possibly due to recursion) and then errors out with
error[E0275]: overflow evaluating the requirement `(&mut PgConnection, Oid): std::marker::Send`
.
error[E0275]: overflow evaluating the requirement `(&mut PgConnection, Oid): std::marker::Send` --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-core-0.8.6\src\ext\async_stream.rs:28:56 | 28 | Fut: 'a + Future<Output = Result<(), Error>> + Send, | ^^^^ | = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`sqlx_postgres`) note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36 | 319 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 320 | | let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?; 321 | | 322 | | Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType { ... | 326 | | })))) 327 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82 | 193 | async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> { | __________________________________________________________________________________^ 194 | | let (name, typ_type, category, relation_id, element, base_type): ( 195 | | String, 196 | | i8, ... | 257 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33 | 172 | let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?; | ^^^^^ = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send` note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12 | 231 | pub struct Box< | ^^^ note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12 | 1094 | pub struct Pin<Ptr> { | ^^^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36 | 157 | ) -> Result<PgTypeInfo, Error> { | ____________________________________^ 158 | | // first we check if this is a built-in type 159 | | // in the average application, the vast majority of checks should flow through this 160 | | if let Some(info) = PgTypeInfo::try_from_oid(oid) { ... | 191 | | } | |_____^ note: required because it's used within this `async` fn body --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:104:63 | 104 | ) -> Result<(Vec<PgColumn>, HashMap<UStr, usize>), Error> { | _______________________________________________________________^ 105 | | let mut columns = Vec::new(); 106 | | let mut column_names = HashMap::new(); ... | 137 | | Ok((columns, column_names)) 138 | | } | |_____^ note: required because it's used within this `async` block --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\executor.rs:294:12 | 294 | Ok(try_stream! { | ____________^ 295 | | loop { 296 | | let message = self.inner.stream.recv().await?; ... | 375 | | Ok(()) 376 | | }) | |_________^ note: required because it appears within the type `ManuallyDrop<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-core-0.8.6\src\ext\async_stream.rs:124:110: 124:120}>` --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\mem\manually_drop.rs:157:12 | 157 | pub struct ManuallyDrop<T: ?Sized> { | ^^^^^^^^^^^^ note: required because it appears within the type `Instrumented<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-core-0.8.6\src\ext\async_stream.rs:124:110: 124:120}>` --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\tracing-0.1.41\src\instrument.rs:266:16 | 266 | pub struct Instrumented<T> { | ^^^^^^^^^^^^ = note: this error originates in the macro `try_stream` (in Nightly builds, run with -Z macro-backtrace for more info)
Meta
rustc --version --verbose
:
rustc 1.91.0-nightly (1ebbd87a6 2025-08-11) binary: rustc commit-hash: 1ebbd87a62ce96a72b22da61b7c2c43893534842 commit-date: 2025-08-11 host: x86_64-pc-windows-msvc release: 1.91.0-nightly LLVM version: 21.1.0
KennanHunter, jeffparsons, PonasKovas, cantoramann, jurisk and 6 more
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.