The test suite's dependencies cannot be resolved by an old toolchain.
error: failed to select a version for the requirement `toml = "^0.8"`
candidate versions found which didn't match: 0.5.11, 0.5.10, 0.5.9, ...
location searched: crates.io index
required by package `trybuild v1.0.97`
... which satisfies dependency `trybuild = "^1.0.97"` of package `serde_test_suite v0.0.0`
This change enables the `#[diagnostic::on_unimplemented]` attribute for
the `Serialize` and `Deserialize` trait to point the user to the
relevant derives and point out that they might want to check crates
features for external types by adding the relevant hints an note.
warning: the feature `error_in_core` has been stable since 1.81.0-nightly and no longer requires an attribute to enable
--> serde/src/lib.rs:108:43
|
108 | #![cfg_attr(feature = "unstable", feature(error_in_core, never_type))]
| ^^^^^^^^^^^^^
|
= note: `#[warn(stable_features)]` on by default
warning: unexpected `cfg` condition name: `serde_build_from_git`
--> serde_derive_internals/lib.rs:45:12
|
45 | #[cfg_attr(serde_build_from_git, path = "../serde_derive/src/internals/mod.rs")]
| ^^^^^^^^^^^^^^^^^^^^
|
= help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, `windows`
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(serde_build_from_git)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
= note: `#[warn(unexpected_cfgs)]` on by default
warning: unexpected `cfg` condition name: `serde_build_from_git`
--> serde_derive_internals/lib.rs:46:16
|
46 | #[cfg_attr(not(serde_build_from_git), path = "src/mod.rs")]
| ^^^^^^^^^^^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(serde_build_from_git)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition value: `deserialize_in_place`
--> serde_derive_internals/src/attr.rs:276:11
|
276 | #[cfg(feature = "deserialize_in_place")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
|
= note: no expected values for `feature`
= help: consider adding `deserialize_in_place` as a feature in `Cargo.toml`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive_internals/src/attr.rs:1797:31
|
1797 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive_internals/src/receiver.rs:110:35
|
110 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive_internals/src/receiver.rs:181:47
|
181 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive_internals/src/receiver.rs:210:35
|
210 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive_internals/src/receiver.rs:231:43
|
231 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/lib.rs:62:23
|
62 | #![cfg_attr(all(test, exhaustive), feature(non_exhaustive_omitted_patterns_lint))]
| ^^^^^^^^^^
|
= help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, `windows`
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
= note: `#[warn(unexpected_cfgs)]` on by default
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/internals/attr.rs:1797:31
|
1797 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/internals/receiver.rs:110:35
|
110 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/internals/receiver.rs:181:47
|
181 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/internals/receiver.rs:210:35
|
210 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/internals/receiver.rs:231:43
|
231 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/bound.rs:147:39
|
147 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/bound.rs:199:51
|
199 | ... #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `exhaustive`
--> serde_derive/src/bound.rs:228:39
|
228 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^
|
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(exhaustive)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
warning: unexpected `cfg` condition name: `systemtime_checked_add`
--> test_suite/tests/test_de_error.rs:1527:7
|
1527 | #[cfg(systemtime_checked_add)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, `windows`
= help: consider using a Cargo feature instead or adding `println!("cargo::rustc-check-cfg=cfg(systemtime_checked_add)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg> for more information about checking conditional configuration
= note: `#[warn(unexpected_cfgs)]` on by default
bef110b92a changed the display for unexpected floats to always append a
".0" if there was no decimal point found in the formatting of the float.
However, this should only be relevant for finite (i.e., not NaN or inf)
values. The change introduced a test failure in the ordered-float
crate due to this:
---- impl_serde::test_fail_on_nan stdout ----
thread 'impl_serde::test_fail_on_nan' panicked at 'assertion failed: `(left == right)`
left: `Error { msg: "invalid value: floating point `NaN.0`, expected float (but not NaN)" }`,
right: `"invalid value: floating point `NaN`, expected float (but not NaN)"`', src/lib.rs:1554:9
stack backtrace:
0: rust_begin_unwind
at /usr/src/rustc-1.70.0/library/std/src/panicking.rs:578:5
1: core::panicking::panic_fmt
at /usr/src/rustc-1.70.0/library/core/src/panicking.rs:67:14
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed
at /usr/src/rustc-1.70.0/library/core/src/panicking.rs:228:5
4: serde_test::assert::assert_de_tokens_error
at /usr/share/cargo/registry/serde_test-1.0.171/src/assert.rs:228:19
5: ordered_float::impl_serde::test_fail_on_nan
at ./src/lib.rs:1554:9
6: ordered_float::impl_serde::test_fail_on_nan::{{closure}}
at ./src/lib.rs:1553:27
7: core::ops::function::FnOnce::call_once
at /usr/src/rustc-1.70.0/library/core/src/ops/function.rs:250:5
8: core::ops::function::FnOnce::call_once
at /usr/src/rustc-1.70.0/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
warning: casting `i32` to `f32` causes a loss of precision (`i32` is 32 bits wide, but `f32`'s mantissa is only 23 bits wide)
--> serde/src/de/impls.rs:197:16
|
197 | Ok(v as Self::Value)
| ^^^^^^^^^^^^^^^^
...
457 | / impl_deserialize_num! {
458 | | f32, deserialize_f32
459 | | num_self!(f32:visit_f32);
460 | | num_as_copysign_self!(f64:visit_f64);
461 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
462 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
463 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss
= note: `-W clippy::cast-precision-loss` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_precision_loss)]`
= note: this warning originates in the macro `num_as_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: casting `i64` to `f32` causes a loss of precision (`i64` is 64 bits wide, but `f32`'s mantissa is only 23 bits wide)
--> serde/src/de/impls.rs:197:16
|
197 | Ok(v as Self::Value)
| ^^^^^^^^^^^^^^^^
...
457 | / impl_deserialize_num! {
458 | | f32, deserialize_f32
459 | | num_self!(f32:visit_f32);
460 | | num_as_copysign_self!(f64:visit_f64);
461 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
462 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
463 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss
= note: this warning originates in the macro `num_as_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: casting `u32` to `f32` causes a loss of precision (`u32` is 32 bits wide, but `f32`'s mantissa is only 23 bits wide)
--> serde/src/de/impls.rs:197:16
|
197 | Ok(v as Self::Value)
| ^^^^^^^^^^^^^^^^
...
457 | / impl_deserialize_num! {
458 | | f32, deserialize_f32
459 | | num_self!(f32:visit_f32);
460 | | num_as_copysign_self!(f64:visit_f64);
461 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
462 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
463 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss
= note: this warning originates in the macro `num_as_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: casting `u64` to `f32` causes a loss of precision (`u64` is 64 bits wide, but `f32`'s mantissa is only 23 bits wide)
--> serde/src/de/impls.rs:197:16
|
197 | Ok(v as Self::Value)
| ^^^^^^^^^^^^^^^^
...
457 | / impl_deserialize_num! {
458 | | f32, deserialize_f32
459 | | num_self!(f32:visit_f32);
460 | | num_as_copysign_self!(f64:visit_f64);
461 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
462 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
463 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss
= note: this warning originates in the macro `num_as_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: casting `i64` to `f64` causes a loss of precision (`i64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide)
--> serde/src/de/impls.rs:197:16
|
197 | Ok(v as Self::Value)
| ^^^^^^^^^^^^^^^^
...
465 | / impl_deserialize_num! {
466 | | f64, deserialize_f64
467 | | num_self!(f64:visit_f64);
468 | | num_as_copysign_self!(f32:visit_f32);
469 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
470 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
471 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss
= note: this warning originates in the macro `num_as_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: casting `u64` to `f64` causes a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide)
--> serde/src/de/impls.rs:197:16
|
197 | Ok(v as Self::Value)
| ^^^^^^^^^^^^^^^^
...
465 | / impl_deserialize_num! {
466 | | f64, deserialize_f64
467 | | num_self!(f64:visit_f64);
468 | | num_as_copysign_self!(f32:visit_f32);
469 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
470 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
471 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss
= note: this warning originates in the macro `num_as_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
The serialization implementation is heavily
inspired by the existing trait implentation for
`std::num::Wrapping<T>`.
The deserializing implementation maps input values
that lie outside of the numerical range of the
output type to the `MIN` or `MAX` value of the
output type, depending on the sign of the input
value. This behaviour follows to the `Saturating`
semantics of the output type.
fix#2708
warning: usage of a legacy numeric method
--> serde_derive/src/ser.rs:292:51
|
292 | assert!(fields.len() as u64 <= u64::from(u32::max_value()));
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants
= note: `#[warn(clippy::legacy_numeric_constants)]` on by default
help: use the associated constant instead
|
292 | assert!(fields.len() as u64 <= u64::from(u32::MAX));
| ~~~
warning: usage of a legacy numeric method
--> serde_derive/src/ser.rs:400:53
|
400 | assert!(variants.len() as u64 <= u64::from(u32::max_value()));
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants
help: use the associated constant instead
|
400 | assert!(variants.len() as u64 <= u64::from(u32::MAX));
| ~~~
warning: usage of a legacy numeric method
--> test_suite/tests/test_de_error.rs:1462:29
|
1462 | Token::U64(u64::max_value()),
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants
= note: `-W clippy::legacy-numeric-constants` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::legacy_numeric_constants)]`
help: use the associated constant instead
|
1462 | Token::U64(u64::MAX),
| ~~~
warning: usage of a legacy numeric method
--> test_suite/tests/test_de_error.rs:1479:29
|
1479 | Token::U64(u64::max_value()),
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants
help: use the associated constant instead
|
1479 | Token::U64(u64::MAX),
| ~~~
warning: usage of a legacy numeric method
--> test_suite/tests/test_de_error.rs:1493:29
|
1493 | Token::U64(u64::max_value()),
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants
help: use the associated constant instead
|
1493 | Token::U64(u64::MAX),
| ~~~
warning: usage of a legacy numeric method
--> test_suite/tests/test_de_error.rs:1510:29
|
1510 | Token::U64(u64::max_value()),
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants
help: use the associated constant instead
|
1510 | Token::U64(u64::MAX),
| ~~~
Debugging a recent cargo-outdated bug, it would have been nice not to
wonder whether a rustc version change in GitHub's runner image was a
contributing factor.
New in nightly-2024-03-24 from https://github.com/rust-lang/rust/pull/119552.
warning: fields `nested` and `string` are never read
--> test_suite/tests/regression/issue2371.rs:10:9
|
8 | Flatten {
| ------- fields in this variant
9 | #[serde(flatten)]
10 | nested: Nested,
| ^^^^^^
11 | string: &'static str,
| ^^^^^^
|
= note: `#[warn(dead_code)]` on by default
warning: fields `nested` and `string` are never read
--> test_suite/tests/regression/issue2371.rs:20:9
|
18 | Flatten {
| ------- fields in this variant
19 | #[serde(flatten)]
20 | nested: Nested,
| ^^^^^^
21 | string: &'static str,
| ^^^^^^
warning: fields `nested` and `string` are never read
--> test_suite/tests/regression/issue2371.rs:30:9
|
28 | Flatten {
| ------- fields in this variant
29 | #[serde(flatten)]
30 | nested: Nested,
| ^^^^^^
31 | string: &'static str,
| ^^^^^^
warning: fields `nested` and `string` are never read
--> test_suite/tests/regression/issue2371.rs:40:9
|
38 | Flatten {
| ------- fields in this variant
39 | #[serde(flatten)]
40 | nested: Nested,
| ^^^^^^
41 | string: &'static str,
| ^^^^^^
warning: field `0` is never read
--> test_suite/tests/test_gen.rs:690:33
|
690 | Single(#[serde(borrow)] RelObject<'a>),
| ------ ^^^^^^^^^^^^^
| |
| field in this variant
|
= note: `#[warn(dead_code)]` on by default
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
690 | Single(#[serde(borrow)] ()),
| ~~
warning: field `0` is never read
--> test_suite/tests/test_gen.rs:691:31
|
691 | Many(#[serde(borrow)] Vec<RelObject<'a>>),
| ---- ^^^^^^^^^^^^^^^^^^
| |
| field in this variant
|
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
691 | Many(#[serde(borrow)] ()),
| ~~
New warning since nightly-2024-03-03:
warning: serde_derive/Cargo.toml: no edition set: defaulting to the 2015 edition while 2018 is compatible with `rust-version`
warning: serde_derive_internals/Cargo.toml: no edition set: defaulting to the 2015 edition while 2018 is compatible with `rust-version`
warning: the item `Into` is imported redundantly
--> serde/src/lib.rs:184:47
|
184 | pub use self::core::convert::{self, From, Into};
| ^^^^
|
::: nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/prelude/mod.rs:115:13
|
115 | pub use super::v1::*;
| --------- the item `Into` is already defined here
|
= note: `#[warn(unused_imports)]` on by default
warning: current MSRV (Minimum Supported Rust Version) is `1.31.0` but this item is stable since `1.35.0`
--> serde/src/de/impls.rs:200:39
|
200 | Ok((v as Self::Value).copysign(sign))
| ^^^^^^^^^^^^^^
...
374 | / impl_deserialize_num! {
375 | | f32, deserialize_f32
376 | | num_self!(f32:visit_f32);
377 | | num_as_copysign_self!(f64:visit_f64);
378 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
379 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
380 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: `-W clippy::incompatible-msrv` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::incompatible_msrv)]`
= note: this warning originates in the macro `num_as_copysign_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: current MSRV (Minimum Supported Rust Version) is `1.31.0` but this item is stable since `1.35.0`
--> serde/src/de/impls.rs:200:39
|
200 | Ok((v as Self::Value).copysign(sign))
| ^^^^^^^^^^^^^^
...
382 | / impl_deserialize_num! {
383 | | f64, deserialize_f64
384 | | num_self!(f64:visit_f64);
385 | | num_as_copysign_self!(f32:visit_f32);
386 | | num_as_self!(i8:visit_i8 i16:visit_i16 i32:visit_i32 i64:visit_i64);
387 | | num_as_self!(u8:visit_u8 u16:visit_u16 u32:visit_u32 u64:visit_u64);
388 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: this warning originates in the macro `num_as_copysign_self` which comes from the expansion of the macro `impl_deserialize_num` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: current MSRV (Minimum Supported Rust Version) is `1.31.0` but this item is stable since `1.34.0`
--> serde/src/de/impls.rs:2308:14
|
2308 | .checked_add(duration)
| ^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
warning: current MSRV (Minimum Supported Rust Version) is `1.31.0` but this item is stable since `1.34.0`
--> serde/src/ser/impls.rs:606:26
|
606 | self.get().serialize(serializer)
| ^^^^^
...
623 | / nonzero_integers! {
624 | | NonZeroI8,
625 | | NonZeroI16,
626 | | NonZeroI32,
... |
629 | | NonZeroIsize,
630 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: this warning originates in the macro `nonzero_integers` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: current MSRV (Minimum Supported Rust Version) is `1.31.0` but this item is stable since `1.34.0`
--> serde/src/ser/impls.rs:1053:26
|
1053 | self.load(Ordering::Relaxed).serialize(serializer)
| ^^^^^^^^^^^^^^^^^^^^^^^
...
1061 | / atomic_impl! {
1062 | | AtomicBool "8"
1063 | | AtomicI8 "8"
1064 | | AtomicI16 "16"
... |
1070 | | AtomicUsize "ptr"
1071 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: this warning originates in the macro `atomic_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: current MSRV (Minimum Supported Rust Version) is `1.31.0` but this item is stable since `1.34.0`
--> serde/src/ser/impls.rs:1053:26
|
1053 | self.load(Ordering::Relaxed).serialize(serializer)
| ^^^^^^^^^^^^^^^^^^^^^^^
...
1074 | / atomic_impl! {
1075 | | AtomicI64 "64"
1076 | | AtomicU64 "64"
1077 | | }
| |_- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: this warning originates in the macro `atomic_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: serde_derive_internals/Cargo.toml: `default-features` is
ignored for syn, since `default-features` was not specified for
`workspace.dependencies.syn`, this could become a hard error in the
future
warning: field `0` is never read
--> test_suite/tests/test_remote.rs:143:24
|
143 | struct PrimitivePubDef(u8);
| --------------- ^^
| |
| field in this struct
|
= note: `#[warn(dead_code)]` on by default
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
143 | struct PrimitivePubDef(());
| ~~
warning: field `0` is never read
--> test_suite/tests/test_remote.rs:162:20
|
162 | struct TuplePubDef(u8, #[serde(with = "UnitDef")] remote::Unit);
| ----------- ^^
| |
| field in this struct
|
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
162 | struct TuplePubDef((), #[serde(with = "UnitDef")] remote::Unit);
| ~~
warning: field `0` is never read
--> test_suite/tests/test_remote.rs:200:13
|
200 | Variant(u8),
| ------- ^^
| |
| field in this variant
|
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
200 | Variant(()),
| ~~
error: field `0` is never read
--> test_suite/tests/test_gen.rs:390:23
|
390 | struct StrDef<'a>(&'a str);
| ------ ^^^^^^^
| |
| field in this struct
|
note: the lint level is defined here
--> test_suite/tests/test_gen.rs:5:9
|
5 | #![deny(warnings)]
| ^^^^^^^^
= note: `#[deny(dead_code)]` implied by `#[deny(warnings)]`
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
390 | struct StrDef<'a>(());
| ~~
error: field `0` is never read
--> test_suite/tests/test_gen.rs:690:33
|
690 | Single(#[serde(borrow)] RelObject<'a>),
| ------ ^^^^^^^^^^^^^
| |
| field in this variant
|
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
690 | Single(#[serde(borrow)] ()),
| ~~
error: field `0` is never read
--> test_suite/tests/test_gen.rs:691:31
|
691 | Many(#[serde(borrow)] Vec<RelObject<'a>>),
| ---- ^^^^^^^^^^^^^^^^^^
| |
| field in this variant
|
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
|
691 | Many(#[serde(borrow)] ()),
| ~~
error: some variants are not matched explicitly
--> serde_derive/src/internals/attr.rs:1823:31
|
1823 | match arg {
| ^^^ patterns `&GenericArgument::Const(_)`, `&GenericArgument::AssocConst(_)` and `&GenericArgument::Constraint(_)` not covered
|
= help: ensure that all variants are matched explicitly by adding the suggested match arms
= note: the matched value is of type `&GenericArgument` and the `non_exhaustive_omitted_patterns` attribute was found
note: the lint level is defined here
--> serde_derive/src/internals/attr.rs:1797:49
|
1797 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: the lint level must be set on the whole match
--> serde_derive/src/internals/attr.rs:1855:9
|
1854 | #[cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ------------------------------- remove this attribute
1855 | _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
1796 + #[deny(non_exhaustive_omitted_patterns)]
1797 | match ty {
|
warning: the lint level must be set on the whole match
--> serde_derive/src/internals/receiver.rs:151:13
|
150 | #[cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ------------------------------- remove this attribute
151 | _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
109 + #[deny(non_exhaustive_omitted_patterns)]
110 | match ty {
|
warning: the lint level must be set on the whole match
--> serde_derive/src/internals/receiver.rs:188:25
|
187 | #[cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ------------------------------- remove this attribute
188 | _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
180 + #[deny(non_exhaustive_omitted_patterns)]
181 | match arg {
|
warning: the lint level must be set on the whole match
--> serde_derive/src/internals/receiver.rs:213:13
|
212 | #[cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ------------------------------- remove this attribute
213 | _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
209 + #[deny(non_exhaustive_omitted_patterns)]
210 | match bound {
|
warning: the lint level must be set on the whole match
--> serde_derive/src/internals/receiver.rs:239:21
|
238 | #[cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ------------------------------- remove this attribute
239 | _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
230 + #[deny(non_exhaustive_omitted_patterns)]
231 | match predicate {
|
warning: the lint level must be set on the whole match
--> serde_derive/src/bound.rs:185:17
|
184 | #[cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ------------------------------- remove this attribute
185 | _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
146 + #[deny(non_exhaustive_omitted_patterns)]
147 | match ty {
|
warning: the lint level must be set on the whole match
--> serde_derive/src/bound.rs:209:29
|
207 | ... deny(non_exhaustive_omitted_patterns)
| ------------------------------- remove this attribute
208 | ... )]
209 | ... _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
198 + #[deny(non_exhaustive_omitted_patterns)]
199 | match arg {
|
warning: the lint level must be set on the whole match
--> serde_derive/src/bound.rs:234:17
|
233 | #[cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ------------------------------- remove this attribute
234 | _ => {}
| ^
|
= help: it no longer has any effect to set the lint level on an individual match arm
help: set the lint level on the whole match
|
230 + #[deny(non_exhaustive_omitted_patterns)]
231 | match bound {
|
warning: possible intra-doc link using quotes instead of backticks
--> serde/src/de/mod.rs:67:41
|
67 | //! - Rc\<T\> *(if* features = ["rc"] *is enabled)*
| ^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_with_quotes
= note: `-W clippy::doc-link-with-quotes` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::doc_link_with_quotes)]`
warning: possible intra-doc link using quotes instead of backticks
--> serde/src/de/mod.rs:68:42
|
68 | //! - Arc\<T\> *(if* features = ["rc"] *is enabled)*
| ^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_with_quotes
warning: possible intra-doc link using quotes instead of backticks
--> serde/src/ser/mod.rs:64:41
|
64 | //! - Rc\<T\> *(if* features = ["rc"] *is enabled)*
| ^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_with_quotes
warning: possible intra-doc link using quotes instead of backticks
--> serde/src/ser/mod.rs:65:42
|
65 | //! - Arc\<T\> *(if* features = ["rc"] *is enabled)*
| ^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_with_quotes
warning: accessing first element with `variant.fields.get(0)`
--> serde_derive/src/de.rs:1843:27
|
1843 | let default = variant.fields.get(0).map(|field| {
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `variant.fields.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
= note: `-W clippy::get-first` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::get_first)]`
warning: accessing first element with `variant.fields.get(0)`
--> serde_derive/src/de.rs:1888:27
|
1888 | let default = variant.fields.get(0).map(|field| {
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `variant.fields.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
`expr` is of type serde_derive::fragment::Expr, which can be
interpolated directly in any expression position. It does not
need to be nested in another set of braces.
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2722:9
|
2722 | r#"invalid type: unit value, expected variant identifier"#,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
= note: `-W clippy::needless-raw-string-hashes` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::needless_raw_string_hashes)]`
help: remove all the hashes around the literal
|
2722 - r#"invalid type: unit value, expected variant identifier"#,
2722 + r"invalid type: unit value, expected variant identifier",
|
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2743:9
|
2743 | r#"invalid type: unit value, expected variant identifier"#,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
help: remove all the hashes around the literal
|
2743 - r#"invalid type: unit value, expected variant identifier"#,
2743 + r"invalid type: unit value, expected variant identifier",
|
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2769:9
|
2769 | r#"invalid type: unit value, expected variant of enum Enum"#,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
help: remove all the hashes around the literal
|
2769 - r#"invalid type: unit value, expected variant of enum Enum"#,
2769 + r"invalid type: unit value, expected variant of enum Enum",
|
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2782:63
|
2782 | assert_de_tokens_error::<Enum>(&[Token::Str("Untagged")], r#"something strange..."#);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
help: remove all the hashes around the literal
|
2782 - assert_de_tokens_error::<Enum>(&[Token::Str("Untagged")], r#"something strange..."#);
2782 + assert_de_tokens_error::<Enum>(&[Token::Str("Untagged")], r"something strange...");
|
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2803:9
|
2803 | r#"invalid type: unit value, expected something strange..."#,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
help: remove all the hashes around the literal
|
2803 - r#"invalid type: unit value, expected something strange..."#,
2803 + r"invalid type: unit value, expected something strange...",
|
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2812:9
|
2812 | r#"invalid type: map, expected something strange..."#,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
help: remove all the hashes around the literal
|
2812 - r#"invalid type: map, expected something strange..."#,
2812 + r"invalid type: map, expected something strange...",
|
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2817:9
|
2817 | r#"invalid type: unit value, expected something strange..."#,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
help: remove all the hashes around the literal
|
2817 - r#"invalid type: unit value, expected something strange..."#,
2817 + r"invalid type: unit value, expected something strange...",
|
warning: unnecessary hashes around raw string literal
--> test_suite/tests/test_annotations.rs:2828:9
|
2828 | r#"invalid type: map, expected something strange..."#,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes
help: remove all the hashes around the literal
|
2828 - r#"invalid type: map, expected something strange..."#,
2828 + r"invalid type: map, expected something strange...",
|
Unit variant of externally tagged enum cannot be deserialized from the string
token by itself. It is ContentDeserializer + serde_test::Deserializer that makes
this possible, because serde_test::Deserializer produces Content::Str() from
Token::BorrowedStr() and ContentDeserializer produces unit variant from Content::Str().
The following tokens all produces Content::String(variant):
- Token::String(variant)
- Token::Str(variant)
- Token::UnitVariant { variant, .. }
Token::BorrowedStr(variant) produces Content::Str(variant) that was the real purpose to
use it in test in #933. This actually makes this test testing `Content` rather than type itself.
Correct way to represent enum one of:
- [xxxVariant { .. }]
- [Enum { .. }, xxxVariant { variant, .. }]
- [Enum { .. }, String(variant), <variant content>]
- [Enum { .. }, Str(variant), <variant content>]
- [Enum { .. }, BorrowedStr(variant), <variant content>]
2023-08-07 19:19:00 +05:00
46 changed files with 1517 additions and 600 deletions
= note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
help: you can convert a `u8` to a `u16`
|
7 | #[derive(Deserialize.into())]
| +++++++
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.