David Tolnay
fae23fea97
Resolve manual_let_else pedantic clippy lint
...
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/attr.rs:1460:5
|
1460 | / let string = match get_lit_str(cx, attr_name, meta)? {
1461 | | Some(string) => string,
1462 | | None => return Ok(None),
1463 | | };
| |______^ help: consider writing: `let Some(string) = get_lit_str(cx, attr_name, meta)? else { return Ok(None) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
= note: `-W clippy::manual-let-else` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_let_else)]`
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/attr.rs:1482:5
|
1482 | / let string = match get_lit_str(cx, attr_name, meta)? {
1483 | | Some(string) => string,
1484 | | None => return Ok(None),
1485 | | };
| |______^ help: consider writing: `let Some(string) = get_lit_str(cx, attr_name, meta)? else { return Ok(None) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/attr.rs:1505:5
|
1505 | / let string = match get_lit_str2(cx, attr_name, meta_item_name, meta)? {
1506 | | Some(string) => string,
1507 | | None => return Ok(Vec::new()),
1508 | | };
| |______^ help: consider writing: `let Some(string) = get_lit_str2(cx, attr_name, meta_item_name, meta)? else { return Ok(Vec::new()) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/attr.rs:1526:5
|
1526 | / let string = match get_lit_str(cx, attr_name, meta)? {
1527 | | Some(string) => string,
1528 | | None => return Ok(None),
1529 | | };
| |______^ help: consider writing: `let Some(string) = get_lit_str(cx, attr_name, meta)? else { return Ok(None) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/attr.rs:1549:5
|
1549 | / let string = match get_lit_str(cx, BORROW, meta)? {
1550 | | Some(string) => string,
1551 | | None => return Ok(BTreeSet::new()),
1552 | | };
| |______^ help: consider writing: `let Some(string) = get_lit_str(cx, BORROW, meta)? else { return Ok(BTreeSet::new()) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/attr.rs:1621:5
|
1621 | / let seg = match path.segments.last() {
1622 | | Some(seg) => seg,
1623 | | None => {
1624 | | return false;
1625 | | }
1626 | | };
| |______^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
help: consider writing
|
1621 ~ let Some(seg) = path.segments.last() else {
1622 + return false;
1623 + };
|
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/attr.rs:1648:5
|
1648 | / let seg = match path.segments.last() {
1649 | | Some(seg) => seg,
1650 | | None => {
1651 | | return false;
1652 | | }
1653 | | };
| |______^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
help: consider writing
|
1648 ~ let Some(seg) = path.segments.last() else {
1649 + return false;
1650 + };
|
warning: this could be rewritten as `let...else`
--> serde_derive/src/internals/ctxt.rs:49:9
|
49 | / let mut combined = match errors.next() {
50 | | Some(first) => first,
51 | | None => return Ok(()),
52 | | };
| |__________^ help: consider writing: `let Some(mut combined) = errors.next() else { return Ok(()) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
warning: this could be rewritten as `let...else`
--> serde_derive/src/de.rs:29:5
|
29 | / let cont = match Container::from_ast(&ctxt, input, Derive::Deserialize, &private...
30 | | Some(cont) => cont,
31 | | None => return Err(ctxt.check().unwrap_err()),
32 | | };
| |______^ help: consider writing: `let Some(cont) = Container::from_ast(&ctxt, input, Derive::Deserialize, &private.ident()) else { return Err(ctxt.check().unwrap_err()) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
warning: this could be rewritten as `let...else`
--> serde_derive/src/ser.rs:16:5
|
16 | / let cont = match Container::from_ast(&ctxt, input, Derive::Serialize, &private.i...
17 | | Some(cont) => cont,
18 | | None => return Err(ctxt.check().unwrap_err()),
19 | | };
| |______^ help: consider writing: `let Some(cont) = Container::from_ast(&ctxt, input, Derive::Serialize, &private.ident()) else { return Err(ctxt.check().unwrap_err()) };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
2025-10-19 15:02:16 -07:00
David Tolnay
d656b4dd6a
Raise required compiler for serde_derive to Rust 1.65
2025-10-19 15:02:12 -07:00
David Tolnay
b517ec9fd7
Merge pull request #3001 from nik-contrib/refactor
...
refactor: remove 1 level of nesting
2025-10-17 10:35:18 -07:00
David Tolnay
4e278703c6
Merge pull request #2936 from Mingun/remove-fixme
...
Remove some ? from generated code
2025-09-28 11:34:47 -07:00
David Tolnay
a866b336f1
Release 1.0.228
2025-09-27 09:51:07 -07:00
David Tolnay
5adc9e816c
Merge pull request #2995 from dtolnay/rustdocflags
...
Workaround for RUSTDOCFLAGS='--cfg=docsrs'
2025-09-27 09:50:33 -07:00
David Tolnay
ab581789f4
Workaround for RUSTDOCFLAGS='--cfg=docsrs'
2025-09-27 09:46:14 -07:00
David Tolnay
415d9fc560
Release 1.0.227
2025-09-25 16:42:33 -07:00
David Tolnay
7c58427e12
Merge pull request #2991 from dtolnay/inlinecoredoc
...
Inline serde_core into serde in docsrs mode
2025-09-25 16:41:35 -07:00
David Tolnay
9d3410e3f4
Merge pull request #2992 from dtolnay/inplaceseed
...
Remove InPlaceSeed public re-export
2025-09-25 16:40:54 -07:00
David Tolnay
2fb6748bf1
Remove InPlaceSeed public re-export
2025-09-25 16:26:14 -07:00
David Tolnay
f8137c79a2
Inline serde_core into serde in docsrs mode
2025-09-25 13:22:15 -07:00
David Tolnay
b7dbf7e3cb
Merge pull request #2990 from dtolnay/integer128
...
No longer macro_use integer128 module
2025-09-25 11:14:43 -07:00
David Tolnay
7c836915fc
No longer macro_use integer128 module
2025-09-25 11:09:19 -07:00
David Tolnay
aa2d9b208a
Merge pull request #2989 from dtolnay/pr2987
...
PR 2987 followup
2025-09-25 09:45:25 -07:00
David Tolnay
3a7c11c82c
Rename enum_untagged::generate_newtype_variant -> deserialize_newtype_variant
2025-09-25 09:41:34 -07:00
David Tolnay
11ce4402bd
Rename enum_untagged::generate_variant -> deserialize_variant
2025-09-25 09:41:34 -07:00
David Tolnay
8047570160
Rename generate_body_in_place -> deserialize_in_place
2025-09-25 09:41:34 -07:00
David Tolnay
b395215875
Rename all other generate_body -> deserialize
2025-09-25 09:41:33 -07:00
David Tolnay
a437ff6bf7
Rename identifier::generate_identifier -> deserialize_generated
2025-09-25 09:41:33 -07:00
David Tolnay
20fc31c78a
Rename identifier::generate_body -> deserialize_custom
2025-09-25 09:41:33 -07:00
David Tolnay
ad2b064b0a
Adjust variable names
2025-09-25 09:41:33 -07:00
David Tolnay
dec153b8fa
Adjust comments
2025-09-25 09:41:33 -07:00
David Tolnay
e219a0d4b7
Replace unnecessary use of generics_with_de_lifetime
2025-09-25 09:41:33 -07:00
David Tolnay
c78f7d2e30
Rename Parameters::generics -> generics_with_de_lifetime
2025-09-25 09:41:33 -07:00
David Tolnay
502a065a4c
Merge pull request #2987 from Mingun/split-de-generator
...
Refactor: split de generator over multiple files
2025-09-25 09:41:29 -07:00
David Tolnay
1799547846
Release 1.0.226
2025-09-20 16:34:44 -07:00
David Tolnay
2dbeefb11b
Merge pull request #2935 from Mingun/dedupe-adj-enums
...
Remove code duplication when deriving Deserialize for adjacently tagged enums
2025-09-20 16:33:32 -07:00
David Tolnay
8a3c29ff19
Merge pull request #2986 from dtolnay/didnotwork
...
Remove "did not work" comment from test suite
2025-09-20 12:30:39 -07:00
David Tolnay
defc24d361
Remove "did not work" comment from test suite
2025-09-20 12:23:01 -07:00
David Tolnay
ee3c2372fb
Opt in to generate-macro-expansion when building on docs.rs
2025-09-16 16:29:21 -07:00
David Tolnay
6f5eb7d207
Merge pull request #2983 from Mingun/fix-test-instructions
...
Fix instructions for testing contributions
2025-09-16 09:24:04 -07:00
David Tolnay
1d7899d671
Release 1.0.225
2025-09-15 20:43:08 -07:00
David Tolnay
97168d3a24
Touch up PR 2879
2025-09-15 20:38:57 -07:00
David Tolnay
373b11dda7
Merge pull request 2879 from rcrisanti/fix/silence-deprecation-warnings-derive
2025-09-15 20:26:40 -07:00
David Tolnay
69072f2423
Merge pull request 2931 from Mingun/unify-serde-access
2025-09-15 13:22:24 -07:00
David Tolnay
5b37e8a531
Merge pull request #2980 from dtolnay/private
...
Use differently named __private module per patch release
2025-09-15 13:20:54 -07:00
David Tolnay
cbe98a9888
Use differently named __private module per patch release
2025-09-15 09:53:14 -07:00
David Tolnay
957996f5fb
Make all use of __private go through interpolation
2025-09-15 09:48:26 -07:00
David Tolnay
169988206a
Release 1.0.224
2025-09-15 08:46:21 -07:00
David Tolnay
840f6ec9b8
Merge pull request #2979 from dtolnay/private
...
Mark every trait impl for a private type with do_not_recommend
2025-09-15 08:45:06 -07:00
David Tolnay
bf9ebea392
Mark every trait impl for a private type with do_not_recommend
2025-09-14 19:47:36 -07:00
David Tolnay
6c316d7cb5
Release 1.0.223
2025-09-14 13:20:31 -07:00
David Tolnay
a4ac0c2bc6
Merge pull request #2978 from dtolnay/htmlrooturl
...
Change serde_core's html_root_url to docs.rs/serde_core
2025-09-14 13:19:52 -07:00
David Tolnay
ed76364f87
Change serde_core's html_root_url to docs.rs/serde_core
2025-09-14 12:54:38 -07:00
David Tolnay
57e21a1afa
Release 1.0.222
2025-09-14 11:09:08 -07:00
David Tolnay
bb58726133
Merge pull request #2950 from aytey/fix_lifetime_issue_2024
...
Fix temporary value lifetime in `serialize_struct`
2025-09-14 11:08:16 -07:00
David Tolnay
3f6925125b
Delete unneeded field of MapDeserializer
2025-09-14 08:39:57 -07:00
David Tolnay
fd4decf2fe
Merge pull request #2976 from dtolnay/content
...
Move Content's Deserialize impl from serde_core to serde
2025-09-14 08:39:46 -07:00
David Tolnay
00b1b6b2b5
Move Content's Deserialize impl from serde_core to serde
2025-09-14 08:35:53 -07:00
David Tolnay
cf141aa8c7
Move Content's Clone impl from serde_core to serde
2025-09-14 08:35:32 -07:00
David Tolnay
ff3aee490a
Release 1.0.221
2025-09-13 17:25:20 -07:00
David Tolnay
10bcfc0047
Merge pull request #2975 from dtolnay/integer128
...
Deprecate serde_if_integer128 macro
2025-09-13 17:25:14 -07:00
David Tolnay
2f03899197
Deprecate serde_if_integer128 macro
2025-09-13 17:19:10 -07:00
David Tolnay
3bea3b6989
Move serde_if_integer128 macro to serde
2025-09-13 17:12:58 -07:00
David Tolnay
85bf29c446
Merge pull request #2973 from dtolnay/timings
...
Illustrate build timings in serde_core readme
2025-09-13 17:12:51 -07:00
David Tolnay
900c922f41
Illustrate build timings in serde_core readme
2025-09-13 17:09:47 -07:00
David Tolnay
9cf3f2ed7d
Merge pull request #2974 from dtolnay/patchserdecore
...
Patch serde_core at workspace level
2025-09-13 17:04:36 -07:00
David Tolnay
1ffbeb9516
Patch serde_core at workspace level
2025-09-13 16:59:44 -07:00
David Tolnay
1051c5e6b7
Enforce trybuild >= 1.0.108
...
Older versions produce slightly differently normalized output
when run against 1.90.0+ Rust compiler.
2025-09-13 14:49:14 -07:00
David Tolnay
be255d62c8
Release 1.0.220
2025-09-13 14:45:43 -07:00
David Tolnay
263a1dbdd7
Link to serde.rs without trailing slash
2025-09-13 14:40:22 -07:00
David Tolnay
23dea60e1a
Merge pull request #2971 from dtolnay/serdecoreci
...
Add CI coverage of serde_core
2025-09-13 14:40:13 -07:00
David Tolnay
690785f129
Add CI coverage of serde_core
2025-09-13 14:36:11 -07:00
David Tolnay
69aa109fd3
Merge pull request #2970 from dtolnay/coredoctest
...
Fix serde_core doc tests
2025-09-13 14:36:00 -07:00
David Tolnay
6bea2e04e4
Move doc helper macros to serde_core
2025-09-13 14:32:21 -07:00
David Tolnay
a1a82c3c55
Replace serde_core::* glob export
2025-09-13 14:32:21 -07:00
David Tolnay
7987ad700e
Fix serde_core doc tests
2025-09-13 14:32:21 -07:00
David Tolnay
0990d97a77
Merge pull request #2969 from dtolnay/coreprivate
...
Reduce visibility of serde_core implementation details
2025-09-13 14:32:12 -07:00
David Tolnay
a9150aad74
Make serde_core::Result private
2025-09-13 14:29:23 -07:00
David Tolnay
5ac3d84d99
Make InPlaceSeed private
2025-09-13 14:29:23 -07:00
David Tolnay
f916ec6baa
Make size_hint private
2025-09-13 14:29:22 -07:00
David Tolnay
7f831225a9
Make from_utf8_lossy private
2025-09-13 14:29:01 -07:00
David Tolnay
a16893429b
Make module for Content-related private code
2025-09-13 14:26:58 -07:00
David Tolnay
260511d149
Merge pull request #2968 from dtolnay/deserializecontent
...
Restore `__deserialize_content` optimization
2025-09-13 14:26:50 -07:00
David Tolnay
7659fb686d
Inline SeqDeserializer and MapDeserializer for Content
...
Greatly shrinks symbol sizes: keep all those generic type parameters
(and even closures) out of symbol names. A good change even independent
of serde_core.
2025-09-13 14:22:33 -07:00
David Tolnay
f669f16127
Restore __deserialize_content optimization
2025-09-13 14:22:33 -07:00
David Tolnay
93f43cedaa
Merge pull request #2967 from dtolnay/tricfg
...
Specify the cfg in which `tri!` is used
2025-09-13 14:22:25 -07:00
David Tolnay
b6c7ce8ec3
Specify the cfg in which 'tri!' is used
2025-09-13 14:19:07 -07:00
David Tolnay
35c963101b
Merge pull request #2966 from dtolnay/noserdecore
...
Enforce derive cannot be used against serde_core
2025-09-13 14:19:01 -07:00
David Tolnay
8909fc0c60
Enforce derive cannot be used against serde_core
...
Even for a simple data structure that would ordinarily expand to an impl
that only refers to the public Serde traits without serde::__private, we
still disallow a (renamed) serde_core dependency. This leaves the
liberty to new usage of private helpers in such impls over time. For
example, similar to the optimization of the standard library's
derive(Debug) that introduced debug_struct_field1_finish to improve
compile time of derived impls.
2025-09-13 14:15:44 -07:00
David Tolnay
3c747e4585
Relocate serde_derive version constraint from serde to serde_core
...
This disallows using an old version of serde_derive against a new
version of serde_core (with a rename to serde in Cargo.toml).
2025-09-13 14:15:44 -07:00
David Tolnay
1b89ff50a9
Merge pull request #2965 from dtolnay/enableresult
...
Forcibly enable serde_core/result when using serde
2025-09-13 14:15:38 -07:00
David Tolnay
c069b5c640
Forcibly enable serde_core/result when using serde
...
Making Result impls get disabled when using `serde = { version = "1",
default-features = false }` would have been a breaking change.
2025-09-13 14:11:44 -07:00
David Tolnay
79f3484ab8
Merge pull request #2964 from dtolnay/serdecoredoc
...
Update documentation of serde_core
2025-09-13 14:11:33 -07:00
David Tolnay
ac8b7ea052
Update serde_core package.description in Cargo.toml
2025-09-13 14:07:54 -07:00
David Tolnay
c1b2f43917
Tweak explanation of "result" feature
2025-09-13 14:07:54 -07:00
David Tolnay
51f8b0c52d
Rewrite serde_core readme
2025-09-13 14:07:53 -07:00
David Tolnay
6c4cae6b09
Point API documentation to docs.rs/serde
2025-09-13 14:07:53 -07:00
David Tolnay
4da055a286
Fix broken link in serde_core crates.io readme
2025-09-13 14:07:53 -07:00
David Tolnay
66c5d2b153
Merge pull request #2963 from dtolnay/diagnosticpath
...
Override diagnostic::on_unimplemented message for all serde_core traits
2025-09-13 14:07:43 -07:00
David Tolnay
4bddf1b953
Override diagnostic::on_unimplemented message of all serde_core traits
...
This prevents diagnostics being rendered like `serde_core::ser::Serialize`
and `serde_core::de::Deserialize` in projects that have no direct
dependency on serde_core.
The attributes make error messages arguably sometimes worse than
pre-serde_core by always rendering `serde::Serialize` and never
`Serialize` when `use serde::Serialize` is in scope, which rustc's
default message construction knows to recognize. But this is probably
negligible.
I explored the alternative of setting `[lib] name = "serde"` in
serde_core/Cargo.toml which also prevents `serde_core::ser::Serialize`
in messages, but has the unwanted effect of also inserting the following
noise into every such error:
note: there are multiple different versions of crate `serde` in the dependency graph
--> $WORKSPACE/serde_core/src/ser/mod.rs:225:1
|
225 | pub trait Serialize {
| ^^^^^^^^^^^^^^^^^^^ this is the required trait
|
::: src/main.rs:1:1
|
1 | struct MyStruct;
| --------------- this type doesn't implement the required trait
...
4 | let _ = serde_json::to_string(&MyStruct);
| ----------
| |
| one version of crate `serde` used here, as a dependency of crate `serde`
| one version of crate `serde` used here, as a dependency of crate `serde_json`
|
::: $WORKSPACE/serde/src/private/de.rs:2347:1
|
2347 | pub trait IdentifierDeserializer<'de, E: Error> {
| ----------------------------------------------- this is the found trait
= help: you can use `cargo tree` to explore your dependency tree
The "this is the found trait" pointing to `IdentifierDeserializer` seems
like a compiler bug...
2025-09-13 13:59:52 -07:00
David Tolnay
908f32175a
Add ui test of unimplemented trait required by dependency
2025-09-13 13:59:52 -07:00
David Tolnay
3e1cf11060
Organize on_unimplemented ui test into directory
2025-09-13 13:59:52 -07:00
David Tolnay
723fcacad7
Merge pull request #2608 from osiewicz/extract_serde_core
...
feat: Extract serde_core out of serde crate
2025-09-13 13:59:17 -07:00
David Tolnay
94acfe19e6
Format with rustfmt 1.8.0-nightly
2025-09-13 10:16:16 -07:00
David Tolnay
2130ba5788
Ignore mismatched_lifetime_syntaxes lint
...
warning: lifetime flowing from input to output with different syntax can be confusing
--> serde/src/private/de.rs:266:23
|
266 | fn unexpected(&self) -> Unexpected {
| ^^^^^ ---------- the lifetime gets resolved as `'_`
| |
| this lifetime flows to the output
|
= note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
|
266 | fn unexpected(&self) -> Unexpected<'_> {
| ++++
warning: lifetime flowing from input to output with different syntax can be confusing
--> serde/src/private/mod.rs:27:35
|
27 | pub fn from_utf8_lossy(bytes: &[u8]) -> Cow<str> {
| ^^^^^ -------- the lifetime gets resolved as `'_`
| |
| this lifetime flows to the output
|
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
|
27 | pub fn from_utf8_lossy(bytes: &[u8]) -> Cow<'_, str> {
| +++
warning: lifetime flowing from input to output with different syntax can be confusing
--> serde_derive/src/internals/attr.rs:612:23
|
612 | pub fn serde_path(&self) -> Cow<syn::Path> {
| ^^^^^ -------------- the lifetime gets resolved as `'_`
| |
| this lifetime flows to the output
|
= note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
|
612 | pub fn serde_path(&self) -> Cow<'_, syn::Path> {
| +++
warning: lifetime flowing from input to output with different syntax can be confusing
--> serde_derive/src/internals/case.rs:45:37
|
45 | pub fn from_str(rename_all_str: &str) -> Result<Self, ParseError> {
| ^^^^ ---------- the lifetime gets resolved as `'_`
| |
| this lifetime flows to the output
|
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
|
45 | pub fn from_str(rename_all_str: &str) -> Result<Self, ParseError<'_>> {
| ++++
warning: lifetime flowing from input to output with different syntax can be confusing
--> serde_derive/src/de.rs:3228:13
|
3228 | params: &Parameters,
| ^^^^^^^^^^^ this lifetime flows to the output
3229 | ) -> (
3230 | DeImplGenerics,
| -------------- the lifetimes get resolved as `'_`
3231 | DeTypeGenerics,
| -------------- the lifetimes get resolved as `'_`
3232 | syn::TypeGenerics,
| ----------------- the lifetimes get resolved as `'_`
3233 | Option<&syn::WhereClause>,
| ----------------- the lifetimes get resolved as `'_`
|
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
|
3230 ~ DeImplGenerics<'_>,
3231 ~ DeTypeGenerics<'_>,
3232 ~ syn::TypeGenerics<'_>,
|
2025-06-05 22:11:48 -07:00
David Tolnay
a1ddb18c92
Resolve new dead_code warnings in test suite
...
Bisects to https://github.com/rust-lang/rust/pull/141407 .
warning: struct `Struct` is never constructed
--> test_suite/tests/test_gen.rs:803:16
|
803 | pub struct Struct {
| ^^^^^^
|
= note: `#[warn(dead_code)]` on by default
warning: function `vec_first_element` is never used
--> test_suite/tests/test_gen.rs:885:4
|
885 | fn vec_first_element<T, S>(vec: &[T], serializer: S) -> StdResult<S::Ok, S::Error>
| ^^^^^^^^^^^^^^^^^
warning: struct `S` is never constructed
--> test_suite/tests/regression/issue2415.rs:5:12
|
5 | pub struct S;
| ^
|
= note: `#[warn(dead_code)]` on by default
2025-05-31 10:09:26 -07:00
David Tolnay
da3998acfb
Pin nightly toolchain used for miri job
2025-05-17 23:14:01 +02:00
David Tolnay
b426ff81e3
Merge pull request #2913 from dtolnay/nightlywindows
...
Drop trailing whitespace from CI job name
2025-03-26 09:24:38 +00:00