error[E0277]: the trait bound `b: Field` is not satisfied --> tests/should_fail/struct_bad_field_names.rs:12:21 | 12 | let (a, b, c) = call! { test_foo, { c: C, b: B, oops: A}}; // Arbitrary order | ^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^ | | | | | required by a bound introduced by this call | the trait `Field` is not implemented for `b` | = help: the trait `Field` is implemented for `b` = help: for that trait implementation, expected `f64`, found `i32` note: required by a bound in `test_instruct_destruct_bad_field_names::test_foo` --> tests/should_fail/struct_bad_field_names.rs:10:5 | 10 | destruct!{fn test_foo({a: i32, b: f64, c: &'static str}) -> (i32, f64, &'static str) { (a, b, c) }}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `test_foo` = note: this error originates in the macro `destruct` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0271]: type mismatch resolving ` as Field>::NAME == "a"` --> tests/should_fail/struct_bad_field_names.rs:12:21 | 12 | let (a, b, c) = call! { test_foo, { c: C, b: B, oops: A}}; // Arbitrary order | ^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^ | | | | | required by a bound introduced by this call | expected `"a"`, found ` as Field>::NAME` | = note: expected constant `"a"` found constant ` as Field>::NAME` note: required by a bound in `test_instruct_destruct_bad_field_names::test_foo` --> tests/should_fail/struct_bad_field_names.rs:10:5 | 10 | destruct!{fn test_foo({a: i32, b: f64, c: &'static str}) -> (i32, f64, &'static str) { (a, b, c) }}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `test_foo` = note: this error originates in the macro `destruct` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `c<&str>: Field` is not satisfied --> tests/should_fail/struct_bad_field_names.rs:12:21 | 12 | let (a, b, c) = call! { test_foo, { c: C, b: B, oops: A}}; // Arbitrary order | ^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^ | | | | | required by a bound introduced by this call | the trait `Field` is not implemented for `c<&str>` | = help: the trait `Field<&str>` is implemented for `c<&str>` = help: for that trait implementation, expected `&str`, found `f64` note: required by a bound in `test_instruct_destruct_bad_field_names::test_foo` --> tests/should_fail/struct_bad_field_names.rs:10:5 | 10 | destruct!{fn test_foo({a: i32, b: f64, c: &'static str}) -> (i32, f64, &'static str) { (a, b, c) }}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `test_foo` = note: this error originates in the macro `destruct` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0271]: type mismatch resolving ` as Field>::NAME == "b"` --> tests/should_fail/struct_bad_field_names.rs:12:21 | 12 | let (a, b, c) = call! { test_foo, { c: C, b: B, oops: A}}; // Arbitrary order | ^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^ | | | | | required by a bound introduced by this call | expected `"b"`, found ` as Field>::NAME` | = note: expected constant `"b"` found constant ` as Field>::NAME` note: required by a bound in `test_instruct_destruct_bad_field_names::test_foo` --> tests/should_fail/struct_bad_field_names.rs:10:5 | 10 | destruct!{fn test_foo({a: i32, b: f64, c: &'static str}) -> (i32, f64, &'static str) { (a, b, c) }}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `test_foo` = note: this error originates in the macro `destruct` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `oops: Field<&'static str>` is not satisfied --> tests/should_fail/struct_bad_field_names.rs:12:21 | 12 | let (a, b, c) = call! { test_foo, { c: C, b: B, oops: A}}; // Arbitrary order | ^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^ | | | | | required by a bound introduced by this call | the trait `Field<&'static str>` is not implemented for `oops` | = help: the trait `Field` is implemented for `oops` = help: for that trait implementation, expected `i32`, found `&'static str` note: required by a bound in `test_instruct_destruct_bad_field_names::test_foo` --> tests/should_fail/struct_bad_field_names.rs:10:5 | 10 | destruct!{fn test_foo({a: i32, b: f64, c: &'static str}) -> (i32, f64, &'static str) { (a, b, c) }}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `test_foo` = note: this error originates in the macro `destruct` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0271]: type mismatch resolving ` as Field<&str>>::NAME == "c"` --> tests/should_fail/struct_bad_field_names.rs:12:21 | 12 | let (a, b, c) = call! { test_foo, { c: C, b: B, oops: A}}; // Arbitrary order | ^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^ | | | | | required by a bound introduced by this call | expected `"c"`, found ` as Field<&'static str>>::NAME` | = note: expected constant `"c"` found constant ` as Field<&'static str>>::NAME` note: required by a bound in `test_instruct_destruct_bad_field_names::test_foo` --> tests/should_fail/struct_bad_field_names.rs:10:5 | 10 | destruct!{fn test_foo({a: i32, b: f64, c: &'static str}) -> (i32, f64, &'static str) { (a, b, c) }}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `test_foo` = note: this error originates in the macro `destruct` (in Nightly builds, run with -Z macro-backtrace for more info)