1.0.0 does not work with workspaces.
error: No such file or directory (os error 2)
--> test_suite/tests/regression.rs:2:5
|
2 | automod::dir!("tests/regression");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this error originates in the macro `automod::dir` (in Nightly builds, run with -Z macro-backtrace for more info)
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
--> test_suite/tests/test_de.rs:202:12
|
202 | .chain(vec![Token::MapEnd].into_iter())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `vec![Token::MapEnd]`
|
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
--> /home/david/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:522:12
|
522 | U: IntoIterator<Item = Self::Item>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
= note: `-D clippy::useless-conversion` implied by `-D clippy::all`
error: try not to call a closure in the expression where it is declared
--> serde/src/de/impls.rs:1590:76
|
1590 | <(_, u16)>::deserialize(deserializer).map(|(ip, port)| $new(ip, port))
| ^^^^^^^^^^^^^^
...
1620 | / parse_socket_impl!("IPv6 socket address" net::SocketAddrV6, |ip, port| net::SocketAddrV6::new(
1621 | | ip, port, 0, 0
1622 | | ));
| |__- in this macro invocation
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call
= note: `-D clippy::redundant-closure-call` implied by `-D clippy::all`
= note: this error originates in the macro `parse_socket_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
error: it is more concise to loop over references to containers instead of using explicit iteration methods
--> serde/src/private/de.rs:2761:22
|
2761 | for entry in self.0.iter_mut() {
| ^^^^^^^^^^^^^^^^^ help: to write this more concisely, try: `&mut *self.0`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_iter_loop
= note: `-D clippy::explicit-iter-loop` implied by `-D clippy::pedantic`
error: it is more concise to loop over references to containers instead of using explicit iteration methods
--> serde_derive/src/internals/check.rs:202:20
|
202 | for variant in variants.iter() {
| ^^^^^^^^^^^^^^^ help: to write this more concisely, try: `variants`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_iter_loop
= note: `-D clippy::explicit-iter-loop` implied by `-D clippy::pedantic`
error: it is more concise to loop over references to containers instead of using explicit iteration methods
--> serde_derive/src/bound.rs:262:28
|
262 | for variant in variants.iter() {
| ^^^^^^^^^^^^^^^ help: to write this more concisely, try: `variants`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_iter_loop
Previously if someone wrote an enum containing:
- `A` (untagged)
- `B` (tagged)
- `C` (tagged)
- `D` (untagged)
- `E` (tagged)
- `F` (untagged)
serde_derive would produce errors referring to B and E only, saying
you're supposed to put untagged variants at the end. The choice of B and
E for this error doesn't make a lot of sense because in order to resolve
the issue, the user must either:
- move A and D down
or:
- move B, C, and E up.
This commit changes the error to appear on A and D instead.
error: consider adding a `;` to the last statement for consistent formatting
--> serde_derive/src/internals/ast.rs:161:13
|
161 | seen_untagged = variant.attrs.untagged()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `seen_untagged = variant.attrs.untagged();`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
= note: `-D clippy::semicolon-if-nothing-returned` implied by `-D clippy::pedantic`
error: consider adding a `;` to the last statement for consistent formatting
--> serde_derive/src/internals/ast.rs:159:17
|
159 | ... cx.error_spanned_by(&variant.ident, "all variants with the #[serde(untagged)] attribute must be placed at the end of the enum")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `cx.error_spanned_by(&variant.ident, "all variants with the #[serde(untagged)] attribute must be placed at the end of the enum");`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
Without this, if it fails, the only information printed is useless:
Preparing a sysroot for Miri (target: x86_64-unknown-linux-gnu)...
fatal error: failed to build sysroot; run `cargo miri setup` to see the error details
warning: this loop could be written as a `for` loop
--> serde/src/private/de.rs:2905:9
|
2905 | while let Some(item) = self.iter.next() {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for item in self.iter.by_ref()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator
= note: `#[warn(clippy::while_let_on_iterator)]` on by default
Fixes these being treated as "tests" by `cargo test` in serde_derive:
running 3 tests
test src/internals/check.rs - internals::check::check_remote_generic (line 23) ... FAILED
test src/internals/check.rs - internals::check::check_remote_generic (line 29) ... FAILED
test src/lib.rs - (line 3) ... ok
failures:
---- src/internals/check.rs - internals::check::check_remote_generic (line 23) stdout ----
error: unknown start of token: \u{2026}
--> src/internals/check.rs:25:20
|
4 | struct Generic<T> {…}
| ^
error: cannot find attribute `serde` in this scope
--> src/internals/check.rs:24:3
|
3 | #[serde(remote = "Generic")]
| ^^^^^
|
= note: `serde` is in scope, but it is a crate, not an attribute
error[E0392]: parameter `T` is never used
--> src/internals/check.rs:25:16
|
4 | struct Generic<T> {…}
| ^ unused parameter
|
= help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`
= help: if you intended `T` to be a const parameter, use `const T: usize` instead
---- src/internals/check.rs - internals::check::check_remote_generic (line 29) stdout ----
error: unknown start of token: \u{2026}
--> src/internals/check.rs:31:21
|
4 | struct ConcreteDef {…}
| ^
error: cannot find attribute `serde` in this scope
--> src/internals/check.rs:30:3
|
3 | #[serde(remote = "Generic<T>")]
| ^^^^^
|
= note: `serde` is in scope, but it is a crate, not an attribute