warning: some variants are not matched explicitly
--> serde_derive/src/internals/receiver.rs:209:15
|
209 | match bound {
| ^^^^^ pattern `&mut TypeParamBound::PreciseCapture(_)` not covered
|
= help: ensure that all variants are matched explicitly by adding the suggested match arms
= note: the matched value is of type `&mut TypeParamBound` and the `non_exhaustive_omitted_patterns` attribute was found
note: the lint level is defined here
--> serde_derive/src/internals/receiver.rs:210:53
|
210 | #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: some variants are not matched explicitly
--> serde_derive/src/bound.rs:227:19
|
227 | match bound {
| ^^^^^ pattern `&TypeParamBound::PreciseCapture(_)` not covered
|
= help: ensure that all variants are matched explicitly by adding the suggested match arms
= note: the matched value is of type `&TypeParamBound` and the `non_exhaustive_omitted_patterns` attribute was found
note: the lint level is defined here
--> serde_derive/src/bound.rs:228:57
|
228 | #![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 {
|
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
error: redundant closure
--> serde_derive/src/bound.rs:53:19
|
53 | .flat_map(|predicates| predicates.to_vec());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `[T]::to_vec`
|
note: the lint level is defined here
--> serde_derive/src/lib.rs:18:22
|
18 | #![deny(clippy::all, clippy::pedantic)]
| ^^^^^^^^^^^^^^^^
= note: `#[deny(clippy::redundant_closure_for_method_calls)]` implied by `#[deny(clippy::pedantic)]`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls
error: redundant closure
--> serde_derive/src/bound.rs:75:19
|
75 | .flat_map(|predicates| predicates.to_vec());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `[T]::to_vec`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls
error: used `flat_map` where `filter_map` could be used instead
--> serde_derive/src/bound.rs:52:10
|
52 | .flat_map(|field| from_field(&field.attrs))
| ^^^^^^^^ help: try: `filter_map`
|
note: the lint level is defined here
--> serde_derive/src/lib.rs:18:22
|
18 | #![deny(clippy::all, clippy::pedantic)]
| ^^^^^^^^^^^^^^^^
= note: `#[deny(clippy::flat_map_option)]` implied by `#[deny(clippy::pedantic)]`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_option
error: used `flat_map` where `filter_map` could be used instead
--> serde_derive/src/bound.rs:74:10
|
74 | .flat_map(|variant| from_variant(&variant.attrs))
| ^^^^^^^^ help: try: `filter_map`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_option
The builtin visitor is fairly expensive to compile (3700 lines of code),
particularly if something else in the dependency graph also enables
syn/full. For the usage in serde_derive, it turns out to be easy to
replace.
The following changes are included:
- Delete per-file license notices at the top of each file.
- Delete the first paragraph of LICENSE-MIT (an inaccurate
pseudo-copyright line), leaving only the text of the MIT license.
Nothing about the license of Serde code has changed, only our
understanding of how to correctly communicate that license has changed.
This mirrors an equivalent change being applied in the rust-lang/rust
repository.
As discussed in #1013, serialize_with functions attached to variants receive an
argument for each inner value contained within the variant. Internally such a
function is wired up to the serializer as if the variant were a newtype variant.