diff --git a/tests/codegen/fail/input-object/derive_incompatible_field_type.stderr b/tests/codegen/fail/input-object/derive_incompatible_field_type.stderr index 46abf94a..21bf4014 100644 --- a/tests/codegen/fail/input-object/derive_incompatible_field_type.stderr +++ b/tests/codegen/fail/input-object/derive_incompatible_field_type.stderr @@ -1,46 +1,47 @@ error[E0277]: the trait bound `ObjectA: IsInputType<__S>` is not satisfied - --> fail/input-object/derive_incompatible_field_type.rs:8:10 - | -8 | #[derive(GraphQLInputObject)] - | ^^^^^^^^^^^^^^^^^^ the trait `IsInputType<__S>` is not implemented for `ObjectA` - | - = help: the following other types implement trait `IsInputType<S>`: - <bool as IsInputType<__S>> - <i32 as IsInputType<__S>> - <f64 as IsInputType<__S>> - <Object as IsInputType<__S>> - <Box<T> as IsInputType<S>> - <uuid::Uuid as IsInputType<__S>> - <url::Url as IsInputType<__S>> - <bson::datetime::DateTime as IsInputType<__S>> - and $N others - = note: this error originates in the derive macro `GraphQLInputObject` (in Nightly builds, run with -Z macro-backtrace for more info) + --> fail/input-object/derive_incompatible_field_type.rs:10:12 + | +10 | field: ObjectA, + | ^^^^^^^ the trait `IsInputType<__S>` is not implemented for `ObjectA` + | + = help: the following other types implement trait `IsInputType<S>`: + <bool as IsInputType<__S>> + <i32 as IsInputType<__S>> + <f64 as IsInputType<__S>> + <Object as IsInputType<__S>> + <Box<T> as IsInputType<S>> + <uuid::Uuid as IsInputType<__S>> + <url::Url as IsInputType<__S>> + <bson::datetime::DateTime as IsInputType<__S>> + and $N others error[E0277]: the trait bound `ObjectA: FromInputValue<__S>` is not satisfied - --> fail/input-object/derive_incompatible_field_type.rs:8:10 - | -8 | #[derive(GraphQLInputObject)] - | ^^^^^^^^^^^^^^^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjectA` - | - = help: the following other types implement trait `FromInputValue<S>`: - <bool as FromInputValue<__S>> - <i32 as FromInputValue<__S>> - <f64 as FromInputValue<__S>> - <Object as FromInputValue<__S>> - <Box<T> as FromInputValue<S>> - <uuid::Uuid as FromInputValue<__S>> - <url::Url as FromInputValue<__S>> - <bson::datetime::DateTime as FromInputValue<__S>> - and $N others + --> fail/input-object/derive_incompatible_field_type.rs:10:12 + | +8 | #[derive(GraphQLInputObject)] + | ------------------ required by a bound introduced by this call +9 | struct Object { +10 | field: ObjectA, + | ^^^^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjectA` + | + = help: the following other types implement trait `FromInputValue<S>`: + <bool as FromInputValue<__S>> + <i32 as FromInputValue<__S>> + <f64 as FromInputValue<__S>> + <Object as FromInputValue<__S>> + <Box<T> as FromInputValue<S>> + <uuid::Uuid as FromInputValue<__S>> + <url::Url as FromInputValue<__S>> + <bson::datetime::DateTime as FromInputValue<__S>> + and $N others note: required by a bound in `Registry::<'r, S>::arg` - --> $WORKSPACE/juniper/src/executor/mod.rs - | - | pub fn arg<T>(&mut self, name: &str, info: &T::TypeInfo) -> Argument<'r, S> - | --- required by a bound in this associated function - | where - | T: GraphQLType<S> + FromInputValue<S>, - | ^^^^^^^^^^^^^^^^^ required by this bound in `Registry::<'r, S>::arg` - = note: this error originates in the derive macro `GraphQLInputObject` (in Nightly builds, run with -Z macro-backtrace for more info) + --> $WORKSPACE/juniper/src/executor/mod.rs + | + | pub fn arg<T>(&mut self, name: &str, info: &T::TypeInfo) -> Argument<'r, S> + | --- required by a bound in this associated function + | where + | T: GraphQLType<S> + FromInputValue<S>, + | ^^^^^^^^^^^^^^^^^ required by this bound in `Registry::<'r, S>::arg` error[E0277]: the trait bound `ObjectA: FromInputValue<__S>` is not satisfied --> fail/input-object/derive_incompatible_field_type.rs:8:10 diff --git a/tests/codegen/fail/interface/trait/argument_non_input_type.stderr b/tests/codegen/fail/interface/trait/argument_non_input_type.stderr index b620480b..a6af9595 100644 --- a/tests/codegen/fail/interface/trait/argument_non_input_type.stderr +++ b/tests/codegen/fail/interface/trait/argument_non_input_type.stderr @@ -1,42 +1,44 @@ error[E0277]: the trait bound `ObjA: IsInputType<__S>` is not satisfied - --> fail/interface/trait/argument_non_input_type.rs:8:1 - | -8 | #[graphql_interface] - | ^^^^^^^^^^^^^^^^^^^^ the trait `IsInputType<__S>` is not implemented for `ObjA` - | - = help: the following other types implement trait `IsInputType<S>`: - <bool as IsInputType<__S>> - <i32 as IsInputType<__S>> - <f64 as IsInputType<__S>> - <Box<T> as IsInputType<S>> - <uuid::Uuid as IsInputType<__S>> - <url::Url as IsInputType<__S>> - <bson::datetime::DateTime as IsInputType<__S>> - <juniper::schema::model::DirectiveLocation as IsInputType<__S>> - and $N others + --> fail/interface/trait/argument_non_input_type.rs:10:23 + | +10 | fn id(&self, obj: ObjA) -> &str; + | ^^^^ the trait `IsInputType<__S>` is not implemented for `ObjA` + | + = help: the following other types implement trait `IsInputType<S>`: + <bool as IsInputType<__S>> + <i32 as IsInputType<__S>> + <f64 as IsInputType<__S>> + <Box<T> as IsInputType<S>> + <uuid::Uuid as IsInputType<__S>> + <url::Url as IsInputType<__S>> + <bson::datetime::DateTime as IsInputType<__S>> + <juniper::schema::model::DirectiveLocation as IsInputType<__S>> + and $N others error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied - --> fail/interface/trait/argument_non_input_type.rs:8:1 - | -8 | #[graphql_interface] - | ^^^^^^^^^^^^^^^^^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` - | - = help: the following other types implement trait `FromInputValue<S>`: - <bool as FromInputValue<__S>> - <i32 as FromInputValue<__S>> - <f64 as FromInputValue<__S>> - <Box<T> as FromInputValue<S>> - <uuid::Uuid as FromInputValue<__S>> - <url::Url as FromInputValue<__S>> - <bson::datetime::DateTime as FromInputValue<__S>> - <juniper::schema::model::DirectiveLocation as FromInputValue<__S>> - and $N others + --> fail/interface/trait/argument_non_input_type.rs:10:23 + | +8 | #[graphql_interface] + | -------------------- required by a bound introduced by this call +9 | trait Character { +10 | fn id(&self, obj: ObjA) -> &str; + | ^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` + | + = help: the following other types implement trait `FromInputValue<S>`: + <bool as FromInputValue<__S>> + <i32 as FromInputValue<__S>> + <f64 as FromInputValue<__S>> + <Box<T> as FromInputValue<S>> + <uuid::Uuid as FromInputValue<__S>> + <url::Url as FromInputValue<__S>> + <bson::datetime::DateTime as FromInputValue<__S>> + <juniper::schema::model::DirectiveLocation as FromInputValue<__S>> + and $N others note: required by a bound in `Registry::<'r, S>::arg` - --> $WORKSPACE/juniper/src/executor/mod.rs - | - | pub fn arg<T>(&mut self, name: &str, info: &T::TypeInfo) -> Argument<'r, S> - | --- required by a bound in this associated function - | where - | T: GraphQLType<S> + FromInputValue<S>, - | ^^^^^^^^^^^^^^^^^ required by this bound in `Registry::<'r, S>::arg` - = note: this error originates in the attribute macro `graphql_interface` (in Nightly builds, run with -Z macro-backtrace for more info) + --> $WORKSPACE/juniper/src/executor/mod.rs + | + | pub fn arg<T>(&mut self, name: &str, info: &T::TypeInfo) -> Argument<'r, S> + | --- required by a bound in this associated function + | where + | T: GraphQLType<S> + FromInputValue<S>, + | ^^^^^^^^^^^^^^^^^ required by this bound in `Registry::<'r, S>::arg` diff --git a/tests/codegen/fail/object/argument_non_input_type.stderr b/tests/codegen/fail/object/argument_non_input_type.stderr index 15560aad..323928ff 100644 --- a/tests/codegen/fail/object/argument_non_input_type.stderr +++ b/tests/codegen/fail/object/argument_non_input_type.stderr @@ -1,8 +1,8 @@ error[E0277]: the trait bound `ObjA: IsInputType<__S>` is not satisfied - --> fail/object/argument_non_input_type.rs:10:1 + --> fail/object/argument_non_input_type.rs:12:23 | -10 | #[graphql_object] - | ^^^^^^^^^^^^^^^^^ the trait `IsInputType<__S>` is not implemented for `ObjA` +12 | fn id(&self, obj: ObjA) -> &str { + | ^^^^ the trait `IsInputType<__S>` is not implemented for `ObjA` | = help: the following other types implement trait `IsInputType<S>`: <bool as IsInputType<__S>> @@ -16,10 +16,13 @@ error[E0277]: the trait bound `ObjA: IsInputType<__S>` is not satisfied and $N others error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied - --> fail/object/argument_non_input_type.rs:10:1 + --> fail/object/argument_non_input_type.rs:12:23 | 10 | #[graphql_object] - | ^^^^^^^^^^^^^^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` + | ----------------- required by a bound introduced by this call +11 | impl ObjB { +12 | fn id(&self, obj: ObjA) -> &str { + | ^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` | = help: the following other types implement trait `FromInputValue<S>`: <bool as FromInputValue<__S>> @@ -39,7 +42,6 @@ note: required by a bound in `Registry::<'r, S>::arg` | where | T: GraphQLType<S> + FromInputValue<S>, | ^^^^^^^^^^^^^^^^^ required by this bound in `Registry::<'r, S>::arg` - = note: this error originates in the attribute macro `graphql_object` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied --> fail/object/argument_non_input_type.rs:10:1 @@ -58,3 +60,20 @@ error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied <juniper::schema::model::DirectiveLocation as FromInputValue<__S>> and $N others = note: this error originates in the attribute macro `graphql_object` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied + --> fail/object/argument_non_input_type.rs:12:23 + | +12 | fn id(&self, obj: ObjA) -> &str { + | ^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` + | + = help: the following other types implement trait `FromInputValue<S>`: + <bool as FromInputValue<__S>> + <i32 as FromInputValue<__S>> + <f64 as FromInputValue<__S>> + <Box<T> as FromInputValue<S>> + <uuid::Uuid as FromInputValue<__S>> + <url::Url as FromInputValue<__S>> + <bson::datetime::DateTime as FromInputValue<__S>> + <juniper::schema::model::DirectiveLocation as FromInputValue<__S>> + and $N others diff --git a/tests/codegen/fail/subscription/argument_non_input_type.stderr b/tests/codegen/fail/subscription/argument_non_input_type.stderr index 3d60b095..baded3fd 100644 --- a/tests/codegen/fail/subscription/argument_non_input_type.stderr +++ b/tests/codegen/fail/subscription/argument_non_input_type.stderr @@ -7,10 +7,10 @@ warning: unused variable: `obj` = note: `#[warn(unused_variables)]` on by default error[E0277]: the trait bound `ObjA: IsInputType<__S>` is not satisfied - --> fail/subscription/argument_non_input_type.rs:15:1 + --> fail/subscription/argument_non_input_type.rs:17:29 | -15 | #[graphql_subscription] - | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `IsInputType<__S>` is not implemented for `ObjA` +17 | async fn id(&self, obj: ObjA) -> Stream<'static, &'static str> { + | ^^^^ the trait `IsInputType<__S>` is not implemented for `ObjA` | = help: the following other types implement trait `IsInputType<S>`: <bool as IsInputType<__S>> @@ -24,10 +24,13 @@ error[E0277]: the trait bound `ObjA: IsInputType<__S>` is not satisfied and $N others error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied - --> fail/subscription/argument_non_input_type.rs:15:1 + --> fail/subscription/argument_non_input_type.rs:17:29 | 15 | #[graphql_subscription] - | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` + | ----------------------- required by a bound introduced by this call +16 | impl ObjB { +17 | async fn id(&self, obj: ObjA) -> Stream<'static, &'static str> { + | ^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` | = help: the following other types implement trait `FromInputValue<S>`: <bool as FromInputValue<__S>> @@ -47,7 +50,6 @@ note: required by a bound in `Registry::<'r, S>::arg` | where | T: GraphQLType<S> + FromInputValue<S>, | ^^^^^^^^^^^^^^^^^ required by this bound in `Registry::<'r, S>::arg` - = note: this error originates in the attribute macro `graphql_subscription` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied --> fail/subscription/argument_non_input_type.rs:15:1 @@ -66,3 +68,20 @@ error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied <juniper::schema::model::DirectiveLocation as FromInputValue<__S>> and $N others = note: this error originates in the attribute macro `graphql_subscription` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0277]: the trait bound `ObjA: FromInputValue<__S>` is not satisfied + --> fail/subscription/argument_non_input_type.rs:17:29 + | +17 | async fn id(&self, obj: ObjA) -> Stream<'static, &'static str> { + | ^^^^ the trait `FromInputValue<__S>` is not implemented for `ObjA` + | + = help: the following other types implement trait `FromInputValue<S>`: + <bool as FromInputValue<__S>> + <i32 as FromInputValue<__S>> + <f64 as FromInputValue<__S>> + <Box<T> as FromInputValue<S>> + <uuid::Uuid as FromInputValue<__S>> + <url::Url as FromInputValue<__S>> + <bson::datetime::DateTime as FromInputValue<__S>> + <juniper::schema::model::DirectiveLocation as FromInputValue<__S>> + and $N others diff --git a/tests/codegen/fail/union/enum_non_object_variant.stderr b/tests/codegen/fail/union/enum_non_object_variant.stderr index 3e75bb5a..c0356aa3 100644 --- a/tests/codegen/fail/union/enum_non_object_variant.stderr +++ b/tests/codegen/fail/union/enum_non_object_variant.stderr @@ -1,17 +1,16 @@ error[E0277]: the trait bound `Test: GraphQLObject<__S>` is not satisfied - --> fail/union/enum_non_object_variant.rs:9:10 - | -9 | #[derive(GraphQLUnion)] - | ^^^^^^^^^^^^ the trait `GraphQLObject<__S>` is not implemented for `Test` - | - = help: the following other types implement trait `GraphQLObject<S>`: - <Box<T> as GraphQLObject<S>> - <juniper::meta::Field<'a, S> as GraphQLObject<S>> - <Argument<'a, S> as GraphQLObject<S>> - <EnumValue as GraphQLObject<__S>> - <SchemaType<'a, S> as GraphQLObject<S>> - <juniper::schema::model::TypeType<'a, S> as GraphQLObject<S>> - <juniper::schema::model::DirectiveType<'a, S> as GraphQLObject<S>> - <Arc<T> as GraphQLObject<S>> - <&T as GraphQLObject<S>> - = note: this error originates in the derive macro `GraphQLUnion` (in Nightly builds, run with -Z macro-backtrace for more info) + --> fail/union/enum_non_object_variant.rs:11:10 + | +11 | Test(Test), + | ^^^^ the trait `GraphQLObject<__S>` is not implemented for `Test` + | + = help: the following other types implement trait `GraphQLObject<S>`: + <Box<T> as GraphQLObject<S>> + <juniper::meta::Field<'a, S> as GraphQLObject<S>> + <Argument<'a, S> as GraphQLObject<S>> + <EnumValue as GraphQLObject<__S>> + <SchemaType<'a, S> as GraphQLObject<S>> + <juniper::schema::model::TypeType<'a, S> as GraphQLObject<S>> + <juniper::schema::model::DirectiveType<'a, S> as GraphQLObject<S>> + <Arc<T> as GraphQLObject<S>> + <&T as GraphQLObject<S>> diff --git a/tests/codegen/fail/union/struct_non_object_variant.stderr b/tests/codegen/fail/union/struct_non_object_variant.stderr index ebbb6a18..934344c6 100644 --- a/tests/codegen/fail/union/struct_non_object_variant.stderr +++ b/tests/codegen/fail/union/struct_non_object_variant.stderr @@ -1,17 +1,16 @@ error[E0277]: the trait bound `Test: GraphQLObject<__S>` is not satisfied - --> fail/union/struct_non_object_variant.rs:9:10 - | -9 | #[derive(GraphQLUnion)] - | ^^^^^^^^^^^^ the trait `GraphQLObject<__S>` is not implemented for `Test` - | - = help: the following other types implement trait `GraphQLObject<S>`: - <Box<T> as GraphQLObject<S>> - <juniper::meta::Field<'a, S> as GraphQLObject<S>> - <Argument<'a, S> as GraphQLObject<S>> - <EnumValue as GraphQLObject<__S>> - <SchemaType<'a, S> as GraphQLObject<S>> - <juniper::schema::model::TypeType<'a, S> as GraphQLObject<S>> - <juniper::schema::model::DirectiveType<'a, S> as GraphQLObject<S>> - <Arc<T> as GraphQLObject<S>> - <&T as GraphQLObject<S>> - = note: this error originates in the derive macro `GraphQLUnion` (in Nightly builds, run with -Z macro-backtrace for more info) + --> fail/union/struct_non_object_variant.rs:10:14 + | +10 | #[graphql(on Test = Character::a)] + | ^^^^ the trait `GraphQLObject<__S>` is not implemented for `Test` + | + = help: the following other types implement trait `GraphQLObject<S>`: + <Box<T> as GraphQLObject<S>> + <juniper::meta::Field<'a, S> as GraphQLObject<S>> + <Argument<'a, S> as GraphQLObject<S>> + <EnumValue as GraphQLObject<__S>> + <SchemaType<'a, S> as GraphQLObject<S>> + <juniper::schema::model::TypeType<'a, S> as GraphQLObject<S>> + <juniper::schema::model::DirectiveType<'a, S> as GraphQLObject<S>> + <Arc<T> as GraphQLObject<S>> + <&T as GraphQLObject<S>> diff --git a/tests/codegen/fail/union/trait_non_object_variant.stderr b/tests/codegen/fail/union/trait_non_object_variant.stderr index 6ff1aeb9..60214759 100644 --- a/tests/codegen/fail/union/trait_non_object_variant.stderr +++ b/tests/codegen/fail/union/trait_non_object_variant.stderr @@ -1,17 +1,16 @@ error[E0277]: the trait bound `Test: GraphQLObject<__S>` is not satisfied - --> fail/union/trait_non_object_variant.rs:9:1 - | -9 | #[graphql_union] - | ^^^^^^^^^^^^^^^^ the trait `GraphQLObject<__S>` is not implemented for `Test` - | - = help: the following other types implement trait `GraphQLObject<S>`: - <Box<T> as GraphQLObject<S>> - <juniper::meta::Field<'a, S> as GraphQLObject<S>> - <Argument<'a, S> as GraphQLObject<S>> - <EnumValue as GraphQLObject<__S>> - <SchemaType<'a, S> as GraphQLObject<S>> - <juniper::schema::model::TypeType<'a, S> as GraphQLObject<S>> - <juniper::schema::model::DirectiveType<'a, S> as GraphQLObject<S>> - <Arc<T> as GraphQLObject<S>> - <&T as GraphQLObject<S>> - = note: this error originates in the attribute macro `graphql_union` (in Nightly builds, run with -Z macro-backtrace for more info) + --> fail/union/trait_non_object_variant.rs:11:28 + | +11 | fn a(&self) -> Option<&Test>; + | ^^^^ the trait `GraphQLObject<__S>` is not implemented for `Test` + | + = help: the following other types implement trait `GraphQLObject<S>`: + <Box<T> as GraphQLObject<S>> + <juniper::meta::Field<'a, S> as GraphQLObject<S>> + <Argument<'a, S> as GraphQLObject<S>> + <EnumValue as GraphQLObject<__S>> + <SchemaType<'a, S> as GraphQLObject<S>> + <juniper::schema::model::TypeType<'a, S> as GraphQLObject<S>> + <juniper::schema::model::DirectiveType<'a, S> as GraphQLObject<S>> + <Arc<T> as GraphQLObject<S>> + <&T as GraphQLObject<S>>