Skip to content

Commit 23e2f8a

Browse files
committed
internal: Split serde derive feature into serde_derive usage
Ideally we'd not have any dependency pull in the derive feature for faster build times, once that is the case this change would have an actual effect. See https://github.com/matklad/macro-dep-test/blob/master/README.md for context.
1 parent 4aa34ab commit 23e2f8a

File tree

19 files changed

+51
-49
lines changed

19 files changed

+51
-49
lines changed

src/tools/rust-analyzer/Cargo.lock

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,24 +1011,25 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
10111011
[[package]]
10121012
name = "lsp-server"
10131013
version = "0.7.7"
1014+
source = "registry+https://github.com/rust-lang/crates.io-index"
1015+
checksum = "550446e84739dcaf6d48a4a093973850669e13e8a34d8f8d64851041be267cd9"
10141016
dependencies = [
10151017
"crossbeam-channel",
1016-
"ctrlc",
10171018
"log",
1018-
"lsp-types",
10191019
"serde",
10201020
"serde_json",
10211021
]
10221022

10231023
[[package]]
10241024
name = "lsp-server"
1025-
version = "0.7.7"
1026-
source = "registry+https://github.com/rust-lang/crates.io-index"
1027-
checksum = "550446e84739dcaf6d48a4a093973850669e13e8a34d8f8d64851041be267cd9"
1025+
version = "0.7.8"
10281026
dependencies = [
10291027
"crossbeam-channel",
1028+
"ctrlc",
10301029
"log",
1030+
"lsp-types",
10311031
"serde",
1032+
"serde_derive",
10321033
"serde_json",
10331034
]
10341035

@@ -1289,7 +1290,6 @@ name = "paths"
12891290
version = "0.0.0"
12901291
dependencies = [
12911292
"camino",
1292-
"serde",
12931293
]
12941294

12951295
[[package]]
@@ -1357,6 +1357,7 @@ dependencies = [
13571357
"paths",
13581358
"rustc-hash 2.0.0",
13591359
"serde",
1360+
"serde_derive",
13601361
"serde_json",
13611362
"span",
13621363
"stdx",
@@ -1446,6 +1447,7 @@ dependencies = [
14461447
"rustc-hash 2.0.0",
14471448
"semver",
14481449
"serde",
1450+
"serde_derive",
14491451
"serde_json",
14501452
"span",
14511453
"stdx",
@@ -1674,7 +1676,7 @@ dependencies = [
16741676
"intern",
16751677
"itertools",
16761678
"load-cargo",
1677-
"lsp-server 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
1679+
"lsp-server 0.7.7",
16781680
"lsp-types",
16791681
"memchr",
16801682
"mimalloc",
@@ -1693,6 +1695,7 @@ dependencies = [
16931695
"scip",
16941696
"semver",
16951697
"serde",
1698+
"serde_derive",
16961699
"serde_json",
16971700
"stdx",
16981701
"syntax",
@@ -1820,18 +1823,18 @@ dependencies = [
18201823

18211824
[[package]]
18221825
name = "serde"
1823-
version = "1.0.206"
1826+
version = "1.0.216"
18241827
source = "registry+https://github.com/rust-lang/crates.io-index"
1825-
checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284"
1828+
checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e"
18261829
dependencies = [
18271830
"serde_derive",
18281831
]
18291832

18301833
[[package]]
18311834
name = "serde_derive"
1832-
version = "1.0.206"
1835+
version = "1.0.216"
18331836
source = "registry+https://github.com/rust-lang/crates.io-index"
1834-
checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97"
1837+
checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e"
18351838
dependencies = [
18361839
"proc-macro2",
18371840
"quote",
@@ -1922,12 +1925,6 @@ version = "0.3.2"
19221925
source = "registry+https://github.com/rust-lang/crates.io-index"
19231926
checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
19241927

1925-
[[package]]
1926-
name = "stable_deref_trait"
1927-
version = "1.2.0"
1928-
source = "registry+https://github.com/rust-lang/crates.io-index"
1929-
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
1930-
19311928
[[package]]
19321929
name = "stdx"
19331930
version = "0.0.0"
@@ -1944,9 +1941,9 @@ dependencies = [
19441941

19451942
[[package]]
19461943
name = "syn"
1947-
version = "2.0.74"
1944+
version = "2.0.87"
19481945
source = "registry+https://github.com/rust-lang/crates.io-index"
1949-
checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7"
1946+
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
19501947
dependencies = [
19511948
"proc-macro2",
19521949
"quote",
@@ -2262,13 +2259,9 @@ dependencies = [
22622259

22632260
[[package]]
22642261
name = "triomphe"
2265-
version = "0.1.13"
2262+
version = "0.1.14"
22662263
source = "registry+https://github.com/rust-lang/crates.io-index"
2267-
checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369"
2268-
dependencies = [
2269-
"serde",
2270-
"stable_deref_trait",
2271-
]
2264+
checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85"
22722265

22732266
[[package]]
22742267
name = "tt"

src/tools/rust-analyzer/Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ pulldown-cmark = { version = "0.9.0", default-features = false }
138138
rayon = "1.8.0"
139139
rustc-hash = "2.0.0"
140140
semver = "1.0.14"
141-
serde = { version = "1.0.192", features = ["derive"] }
141+
serde = { version = "1.0.192" }
142+
serde_derive = { version = "1.0.192" }
142143
serde_json = "1.0.108"
143144
smallvec = { version = "1.10.0", features = [
144145
"const_new",
@@ -157,7 +158,7 @@ tracing-subscriber = { version = "0.3.18", default-features = false, features =
157158
"time",
158159
"tracing-log",
159160
] }
160-
triomphe = { version = "0.1.10", default-features = false, features = ["std"] }
161+
triomphe = { version = "0.1.14", default-features = false, features = ["std"] }
161162
url = "2.3.1"
162163
xshell = "0.2.5"
163164

src/tools/rust-analyzer/crates/paths/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@ doctest = false
1414

1515
[dependencies]
1616
camino.workspace = true
17-
serde = { workspace = true, optional = true }
1817

1918
[features]
20-
serde1 = ["camino/serde1", "dep:serde"]
19+
serde1 = ["camino/serde1"]
2120

2221
[lints]
2322
workspace = true

src/tools/rust-analyzer/crates/proc-macro-api/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ doctest = false
1414

1515
[dependencies]
1616
serde.workspace = true
17+
serde_derive.workspace = true
1718
serde_json = { workspace = true, features = ["unbounded_depth"] }
1819
tracing.workspace = true
1920
rustc-hash.workspace = true

src/tools/rust-analyzer/crates/proc-macro-api/src/msg.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ pub(crate) mod flat;
44
use std::io::{self, BufRead, Write};
55

66
use paths::Utf8PathBuf;
7-
use serde::{de::DeserializeOwned, Deserialize, Serialize};
7+
use serde::de::DeserializeOwned;
8+
use serde_derive::{Deserialize, Serialize};
89

910
use crate::ProcMacroKind;
1011

@@ -123,7 +124,7 @@ impl ExpnGlobals {
123124
}
124125
}
125126

126-
pub trait Message: Serialize + DeserializeOwned {
127+
pub trait Message: serde::Serialize + DeserializeOwned {
127128
fn read<R: BufRead>(
128129
from_proto: ProtocolRead<R>,
129130
inp: &mut R,

src/tools/rust-analyzer/crates/proc-macro-api/src/msg/flat.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ use std::collections::VecDeque;
3939

4040
use intern::Symbol;
4141
use rustc_hash::FxHashMap;
42-
use serde::{Deserialize, Serialize};
42+
use serde_derive::{Deserialize, Serialize};
4343
use span::{EditionedFileId, ErasedFileAstId, Span, SpanAnchor, SyntaxContextId, TextRange};
4444

4545
use crate::msg::EXTENDED_LEAF_DATA;

src/tools/rust-analyzer/crates/project-model/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ rustc-hash.workspace = true
1919
semver.workspace = true
2020
serde_json.workspace = true
2121
serde.workspace = true
22+
serde_derive.workspace = true
2223
tracing.workspace = true
2324
triomphe.workspace = true
2425
la-arena.workspace = true

src/tools/rust-analyzer/crates/project-model/src/build_dependencies.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use itertools::Itertools;
1515
use la_arena::ArenaMap;
1616
use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
1717
use rustc_hash::{FxHashMap, FxHashSet};
18-
use serde::Deserialize;
18+
use serde::Deserialize as _;
1919
use toolchain::Tool;
2020

2121
use crate::{

src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use cargo_metadata::{CargoOpt, MetadataCommand};
88
use la_arena::{Arena, Idx};
99
use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
1010
use rustc_hash::{FxHashMap, FxHashSet};
11-
use serde::Deserialize;
11+
use serde_derive::Deserialize;
1212
use serde_json::from_value;
1313
use span::Edition;
1414
use toolchain::Tool;

src/tools/rust-analyzer/crates/ra-salsa/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ parking_lot = "0.12.1"
2020
rustc-hash = "2.0.0"
2121
smallvec = "1.0.0"
2222
oorandom = "11"
23-
triomphe = "0.1.11"
23+
triomphe.workspace = true
2424
itertools.workspace = true
2525

2626
ra-salsa-macros = { version = "0.0.0", path = "ra-salsa-macros", package = "salsa-macros" }

src/tools/rust-analyzer/crates/rust-analyzer/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ rayon.workspace = true
3636
rustc-hash.workspace = true
3737
serde_json = { workspace = true, features = ["preserve_order"] }
3838
serde.workspace = true
39+
serde_derive.workspace = true
3940
tenthash = "0.4.0"
4041
num_cpus = "1.15.0"
4142
mimalloc = { version = "0.1.30", default-features = false, optional = true }

src/tools/rust-analyzer/crates/rust-analyzer/src/flycheck.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ use std::{fmt, io, process::Command, time::Duration};
66
use crossbeam_channel::{select_biased, unbounded, Receiver, Sender};
77
use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
88
use rustc_hash::FxHashMap;
9-
use serde::Deserialize;
9+
use serde::Deserialize as _;
10+
use serde_derive::Deserialize;
1011

1112
pub(crate) use cargo_metadata::diagnostic::{
1213
Applicability, Diagnostic, DiagnosticCode, DiagnosticLevel, DiagnosticSpan,

src/tools/rust-analyzer/crates/rust-analyzer/src/test_runner.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ use std::process::Command;
55

66
use crossbeam_channel::Sender;
77
use paths::AbsPath;
8-
use serde::Deserialize;
8+
use serde::Deserialize as _;
9+
use serde_derive::Deserialize;
910
use toolchain::Tool;
1011

1112
use crate::{

src/tools/rust-analyzer/crates/rust-analyzer/src/tracing/json.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ where
5454
fn on_event(&self, _event: &Event<'_>, _ctx: Context<'_, S>) {}
5555

5656
fn on_close(&self, id: Id, ctx: Context<'_, S>) {
57-
#[derive(serde::Serialize)]
57+
#[derive(serde_derive::Serialize)]
5858
struct JsonDataInner {
5959
name: &'static str,
6060
elapsed_ms: u128,

src/tools/rust-analyzer/crates/span/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,9 @@ pub struct MacroFileId {
262262
/// `MacroCallId` identifies a particular macro invocation, like
263263
/// `println!("Hello, {}", world)`.
264264
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
265-
pub struct MacroCallId(ra_salsa::InternId);
265+
pub struct MacroCallId(InternId);
266266

267+
#[cfg(feature = "ra-salsa")]
267268
impl ra_salsa::InternKey for MacroCallId {
268269
fn from_intern_id(v: ra_salsa::InternId) -> Self {
269270
MacroCallId(v)
@@ -362,6 +363,7 @@ mod intern_id_proxy {
362363
use std::fmt;
363364
use std::num::NonZeroU32;
364365

366+
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
365367
pub(super) struct InternId {
366368
value: NonZeroU32,
367369
}

src/tools/rust-analyzer/lib/lsp-server/Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lsp-server"
3-
version = "0.7.7"
3+
version = "0.7.8"
44
description = "Generic LSP server scaffold."
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/rust-lang/rust-analyzer/tree/master/lib/lsp-server"
@@ -9,7 +9,8 @@ edition = "2021"
99
[dependencies]
1010
log = "0.4.17"
1111
serde_json = "1.0.108"
12-
serde = { version = "1.0.192", features = ["derive"] }
12+
serde = { version = "1.0.216" }
13+
serde_derive = { version = "1.0.216" }
1314
crossbeam-channel.workspace = true
1415

1516
[dev-dependencies]

src/tools/rust-analyzer/lib/lsp-server/src/msg.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ use std::{
33
io::{self, BufRead, Write},
44
};
55

6-
use serde::{de::DeserializeOwned, Deserialize, Serialize};
6+
use serde::de::DeserializeOwned;
7+
use serde_derive::{Deserialize, Serialize};
78

89
use crate::error::ExtractError;
910

@@ -196,7 +197,7 @@ impl Message {
196197
}
197198

198199
impl Response {
199-
pub fn new_ok<R: Serialize>(id: RequestId, result: R) -> Response {
200+
pub fn new_ok<R: serde::Serialize>(id: RequestId, result: R) -> Response {
200201
Response { id, result: Some(serde_json::to_value(result).unwrap()), error: None }
201202
}
202203
pub fn new_err(id: RequestId, code: i32, message: String) -> Response {
@@ -206,7 +207,7 @@ impl Response {
206207
}
207208

208209
impl Request {
209-
pub fn new<P: Serialize>(id: RequestId, method: String, params: P) -> Request {
210+
pub fn new<P: serde::Serialize>(id: RequestId, method: String, params: P) -> Request {
210211
Request { id, method, params: serde_json::to_value(params).unwrap() }
211212
}
212213
pub fn extract<P: DeserializeOwned>(
@@ -231,7 +232,7 @@ impl Request {
231232
}
232233

233234
impl Notification {
234-
pub fn new(method: String, params: impl Serialize) -> Notification {
235+
pub fn new(method: String, params: impl serde::Serialize) -> Notification {
235236
Notification { method, params: serde_json::to_value(params).unwrap() }
236237
}
237238
pub fn extract<P: DeserializeOwned>(

src/tools/rust-analyzer/lib/lsp-server/src/req_queue.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
use std::collections::HashMap;
22

3-
use serde::Serialize;
4-
53
use crate::{ErrorCode, Request, RequestId, Response, ResponseError};
64

75
/// Manages the set of pending requests, both incoming and outgoing.
@@ -56,7 +54,7 @@ impl<I> Incoming<I> {
5654
}
5755

5856
impl<O> Outgoing<O> {
59-
pub fn register<P: Serialize>(&mut self, method: String, params: P, data: O) -> Request {
57+
pub fn register<P: serde::Serialize>(&mut self, method: String, params: P, data: O) -> Request {
6058
let id = RequestId::from(self.next_id);
6159
self.pending.insert(id.clone(), data);
6260
self.next_id += 1;

src/tools/rust-analyzer/xtask/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ xflags = "0.3.0"
1616
time = { version = "0.3", default-features = false }
1717
zip = { version = "0.6", default-features = false, features = ["deflate", "time"] }
1818
stdx.workspace = true
19-
proc-macro2 = "1.0.47"
19+
# https://github.com/dtolnay/proc-macro2/issues/475
20+
proc-macro2 = "=1.0.86"
2021
quote = "1.0.20"
2122
ungrammar = "1.16.1"
2223
either.workspace = true

0 commit comments

Comments
 (0)