-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
C-bugCategory: This is a bug.Category: This is a bug.I-cycleIssue: A query cycle occurred while none was expectedIssue: A query cycle occurred while none was expectedT-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 have a proprietary code base that contains a GraphQL backend using async-graphql #[Object]
macros on top code that uses sqlx compile-time query validation. If the query validation doesn't work correctly, I get a large amount of extra spew from the compiler.
Current output
error[E0063]: missing field `staff` in initializer of `UserRow`
--> epoxide/src/graphql/feed.rs:51:33
|
51 | Some(User::from(UserRow {
| ^^^^^^^ missing `staff`
(the actual problem, and then...)
error: cannot check whether the hidden type of opaque type satisfies auto traits
--> epoxide/src/graphql/site/mutations.rs:1365:1
|
1365 | #[Object]
| ^^^^^^^^^
|
note: opaque type is declared here
--> epoxide/src/graphql/viewer.rs:202:56
|
202 | pub(super) async fn from_id(id: i64, app: &App) -> Option<Self> {
| ^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> epoxide/src/graphql/site/mutations.rs:1365:1
|
1365 | #[Object]
| ^^^^^^^^^
= note: required because it captures the following types: `ResumeTy`, `Follow`, `&Follow`, `i64`, `&ContextBase<'_, &Positioned<Field>>`, `&App`, `&Arc<App>`, `impl Future<Output = Option<User>>`, `()`
note: required because it's used within this `async` block
--> epoxide/src/graphql/site/mutations.rs:1365:1
|
1365 | #[Object]
| ^^^^^^^^^
= note: required because it captures the following types: `ResumeTy`, `&Follow`, `&ContextBase<'_, &Positioned<Field>>`, `[async block@epoxide/src/graphql/site/mutations.rs:1365:1: 1365:10]`, `()`
note: required because it's used within this `async fn` body
--> epoxide/src/graphql/site/mutations.rs:1365:1
|
1365 | #[Object]
| ^^^^^^^^^
= note: required because it captures the following types: `ResumeTy`, `&Follow`, `&ContextBase<'life2, &Positioned<Field>>`, `&ContextBase<'life2, &Positioned<Field>>`, `impl Future<Output = Result<Option<User>, Error>>`, `()`
note: required because it's used within this `async` block
--> epoxide/src/graphql/site/mutations.rs:1365:1
|
1365 | #[Object]
| ^^^^^^^^^
= note: required because it captures the following types: `ResumeTy`, `&Follow`, `bool`, `[async block@epoxide/src/graphql/site/mutations.rs:1365:1: 1365:10]`, `()`, `Option<User>`, `ContextBase<'_, &Positioned<SelectionSet>>`, `&Option<User>`, `&Option<User>`, `&ContextBase<'_, &Positioned<SelectionSet>>`, `&ContextBase<'_, &Positioned<SelectionSet>>`, `ContextBase<'life2, &Positioned<Field>>`, `&ContextBase<'life2, &Positioned<Field>>`, `&Positioned<Field>`, `&Positioned<Field>`, `Pin<Box<dyn Future<Output = Result<Value, ServerError>> + Send>>`, `Pin<Box<dyn Future<Output = Result<Value, ServerError>> + Send>>`, `[async block@epoxide/src/graphql/site/mutations.rs:1365:1: 1365:10]`, `Option<Site>`, `&Option<Site>`, `&Option<Site>`, `[async block@epoxide/src/graphql/site/mutations.rs:1365:1: 1365:10]`, `Option<bool>`, `&Option<bool>`, `&Option<bool>`
note: required because it's used within this `async` block
--> epoxide/src/graphql/site/mutations.rs:1365:1
|
1365 | #[Object]
| ^^^^^^^^^
= note: required for the cast from `Pin<Box<[async block@epoxide/src/graphql/site/mutations.rs:1365:1: 1365:10]>>` to `Pin<Box<dyn Future<Output = Result<Option<Value>, ServerError>> + Send>>`
= note: the full name for the target type has been written to '/Users/djc/src/bolt/rust/domains/target/debug/deps/epoxide-e30fab28d4badf93.long-type-5277155311423037496.txt'
= note: this error originates in the attribute macro `Object` (in Nightly builds, run with -Z macro-backtrace for more info)
(Repeated multiple times.)
Desired output
Only the first, actionable, error.
Rationale and extra context
This seems to be a regression from 1.71 to 1.72.
phantie and Milo123459
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.I-cycleIssue: A query cycle occurred while none was expectedIssue: A query cycle occurred while none was expectedT-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.