Skip to content

Commit 7ff5a3d

Browse files
Upgrade rustc crates
The main changes are (there are some other small changes): - Using a specific type for trait IDs in the new solver, allowing us to simplify a lot of code. - Add `BoundConst` similar to `BoundTy` and `BoundRegion` (previously consts used `BoundVar` directly), due to a new trait requirement.
1 parent 2127c2d commit 7ff5a3d

File tree

24 files changed

+446
-579
lines changed

24 files changed

+446
-579
lines changed

src/tools/rust-analyzer/Cargo.lock

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,7 +1360,7 @@ dependencies = [
13601360
"expect-test",
13611361
"intern",
13621362
"parser",
1363-
"ra-ap-rustc_lexer 0.123.0",
1363+
"ra-ap-rustc_lexer",
13641364
"rustc-hash 2.1.1",
13651365
"smallvec",
13661366
"span",
@@ -1596,8 +1596,8 @@ dependencies = [
15961596
"drop_bomb",
15971597
"edition",
15981598
"expect-test",
1599-
"ra-ap-rustc_lexer 0.123.0",
1600-
"rustc-literal-escaper",
1599+
"ra-ap-rustc_lexer",
1600+
"rustc-literal-escaper 0.0.4",
16011601
"stdx",
16021602
"tracing",
16031603
]
@@ -1717,7 +1717,7 @@ dependencies = [
17171717
"object",
17181718
"paths",
17191719
"proc-macro-test",
1720-
"ra-ap-rustc_lexer 0.123.0",
1720+
"ra-ap-rustc_lexer",
17211721
"span",
17221722
"syntax-bridge",
17231723
"temp-dir",
@@ -1863,9 +1863,9 @@ dependencies = [
18631863

18641864
[[package]]
18651865
name = "ra-ap-rustc_abi"
1866-
version = "0.123.0"
1866+
version = "0.126.0"
18671867
source = "registry+https://github.com/rust-lang/crates.io-index"
1868-
checksum = "f18c877575c259d127072e9bfc41d985202262fb4d6bfdae3d1252147c2562c2"
1868+
checksum = "0c6789d94fb3e6e30d62f55e99a321ba63484a8bb3b4ead338687c9ddc282d28"
18691869
dependencies = [
18701870
"bitflags 2.9.1",
18711871
"ra-ap-rustc_hashes",
@@ -1875,34 +1875,34 @@ dependencies = [
18751875

18761876
[[package]]
18771877
name = "ra-ap-rustc_ast_ir"
1878-
version = "0.123.0"
1878+
version = "0.126.0"
18791879
source = "registry+https://github.com/rust-lang/crates.io-index"
1880-
checksum = "87cc17e8ce797f2a8d03b838fbf166749b876164432ce81e37d283bf69e3cf80"
1880+
checksum = "aaab80bda0f05e9842e3afb7779b0bad0a4b54e0f7ba6deb5705dcf86482811d"
18811881

18821882
[[package]]
18831883
name = "ra-ap-rustc_hashes"
1884-
version = "0.123.0"
1884+
version = "0.126.0"
18851885
source = "registry+https://github.com/rust-lang/crates.io-index"
1886-
checksum = "2439ed1df3472443133b66949f81080dff88089b42f825761455463709ee1cad"
1886+
checksum = "64bd405e538102b5f699241794b2eefee39d5414c0e4bc72435e91430c51f905"
18871887
dependencies = [
18881888
"rustc-stable-hash",
18891889
]
18901890

18911891
[[package]]
18921892
name = "ra-ap-rustc_index"
1893-
version = "0.123.0"
1893+
version = "0.126.0"
18941894
source = "registry+https://github.com/rust-lang/crates.io-index"
1895-
checksum = "57a24fe0be21be1f8ebc21dcb40129214fb4cefb0f2753f3d46b6dbe656a1a45"
1895+
checksum = "521621e271aa03b8433dad5981838278d6cfd7d2d8c9f4eb6d427f1d671f90fc"
18961896
dependencies = [
18971897
"ra-ap-rustc_index_macros",
18981898
"smallvec",
18991899
]
19001900

19011901
[[package]]
19021902
name = "ra-ap-rustc_index_macros"
1903-
version = "0.123.0"
1903+
version = "0.126.0"
19041904
source = "registry+https://github.com/rust-lang/crates.io-index"
1905-
checksum = "844a27ddcad0116facae2df8e741fd788662cf93dc13029cd864f2b8013b81f9"
1905+
checksum = "245e30f2e1fef258913cc548b36f575549c8af31cbc4649929d21deda96ceeb7"
19061906
dependencies = [
19071907
"proc-macro2",
19081908
"quote",
@@ -1911,20 +1911,9 @@ dependencies = [
19111911

19121912
[[package]]
19131913
name = "ra-ap-rustc_lexer"
1914-
version = "0.121.0"
1914+
version = "0.126.0"
19151915
source = "registry+https://github.com/rust-lang/crates.io-index"
1916-
checksum = "22944e31fb91e9b3e75bcbc91e37d958b8c0825a6160927f2856831d2ce83b36"
1917-
dependencies = [
1918-
"memchr",
1919-
"unicode-properties",
1920-
"unicode-xid",
1921-
]
1922-
1923-
[[package]]
1924-
name = "ra-ap-rustc_lexer"
1925-
version = "0.123.0"
1926-
source = "registry+https://github.com/rust-lang/crates.io-index"
1927-
checksum = "2b734cfcb577d09877799a22742f1bd398be6c00bc428d9de56d48d11ece5771"
1916+
checksum = "a82681f924500e888c860e60ed99e9bf702a219a69374f59116c4261525a2157"
19281917
dependencies = [
19291918
"memchr",
19301919
"unicode-properties",
@@ -1933,9 +1922,9 @@ dependencies = [
19331922

19341923
[[package]]
19351924
name = "ra-ap-rustc_next_trait_solver"
1936-
version = "0.123.0"
1925+
version = "0.126.0"
19371926
source = "registry+https://github.com/rust-lang/crates.io-index"
1938-
checksum = "14f7dfbdf1d045ff4e385e1efdfc3799379895e9c3f3b9b379a0bef4cb238441"
1927+
checksum = "0c9ce51f2431fbdc7fabd2d957522b6e27f41f68ec2af74b52a6f4116352ce1a"
19391928
dependencies = [
19401929
"derive-where",
19411930
"ra-ap-rustc_index",
@@ -1946,19 +1935,19 @@ dependencies = [
19461935

19471936
[[package]]
19481937
name = "ra-ap-rustc_parse_format"
1949-
version = "0.121.0"
1938+
version = "0.126.0"
19501939
source = "registry+https://github.com/rust-lang/crates.io-index"
1951-
checksum = "81057891bc2063ad9e353f29462fbc47a0f5072560af34428ae9313aaa5e9d97"
1940+
checksum = "adc85ef3fdb6c084bde84857d8948dc66b752129dc8417a8614ce490e99a143f"
19521941
dependencies = [
1953-
"ra-ap-rustc_lexer 0.121.0",
1954-
"rustc-literal-escaper",
1942+
"ra-ap-rustc_lexer",
1943+
"rustc-literal-escaper 0.0.5",
19551944
]
19561945

19571946
[[package]]
19581947
name = "ra-ap-rustc_pattern_analysis"
1959-
version = "0.123.0"
1948+
version = "0.126.0"
19601949
source = "registry+https://github.com/rust-lang/crates.io-index"
1961-
checksum = "75b0ee1f059b9dea0818c6c7267478926eee95ba4c7dcf89c8db32fa165d3904"
1950+
checksum = "3cd81eccf33d9528905d4e5abaa254b3129a6405d6c5f123fed9b73a3d217f35"
19621951
dependencies = [
19631952
"ra-ap-rustc_index",
19641953
"rustc-hash 2.1.1",
@@ -1969,9 +1958,9 @@ dependencies = [
19691958

19701959
[[package]]
19711960
name = "ra-ap-rustc_type_ir"
1972-
version = "0.123.0"
1961+
version = "0.126.0"
19731962
source = "registry+https://github.com/rust-lang/crates.io-index"
1974-
checksum = "0bc59fb10a922c38a24cb8a1494f799b0af30bd041acbea689378d3bf330534b"
1963+
checksum = "11cb0da02853698d9c89e1d1c01657b9969752befd56365e8899d4310e52b373"
19751964
dependencies = [
19761965
"bitflags 2.9.1",
19771966
"derive-where",
@@ -1988,9 +1977,9 @@ dependencies = [
19881977

19891978
[[package]]
19901979
name = "ra-ap-rustc_type_ir_macros"
1991-
version = "0.123.0"
1980+
version = "0.126.0"
19921981
source = "registry+https://github.com/rust-lang/crates.io-index"
1993-
checksum = "58878914b6dac7499baeecc8dbb4b9d9dda88030e4ab90cd3b4e87523fbedafe"
1982+
checksum = "ffc93adeb52c483ede13bee6680466458218243ab479c04fb71bb53925a6e0ff"
19941983
dependencies = [
19951984
"proc-macro2",
19961985
"quote",
@@ -2140,6 +2129,12 @@ version = "0.0.4"
21402129
source = "registry+https://github.com/rust-lang/crates.io-index"
21412130
checksum = "ab03008eb631b703dd16978282ae36c73282e7922fe101a4bd072a40ecea7b8b"
21422131

2132+
[[package]]
2133+
name = "rustc-literal-escaper"
2134+
version = "0.0.5"
2135+
source = "registry+https://github.com/rust-lang/crates.io-index"
2136+
checksum = "e4ee29da77c5a54f42697493cd4c9b9f31b74df666a6c04dfc4fde77abe0438b"
2137+
21432138
[[package]]
21442139
name = "rustc-stable-hash"
21452140
version = "0.1.2"
@@ -2445,7 +2440,7 @@ dependencies = [
24452440
"rayon",
24462441
"rowan",
24472442
"rustc-hash 2.1.1",
2448-
"rustc-literal-escaper",
2443+
"rustc-literal-escaper 0.0.4",
24492444
"rustc_apfloat",
24502445
"smol_str",
24512446
"stdx",
@@ -2773,7 +2768,7 @@ version = "0.0.0"
27732768
dependencies = [
27742769
"arrayvec",
27752770
"intern",
2776-
"ra-ap-rustc_lexer 0.123.0",
2771+
"ra-ap-rustc_lexer",
27772772
"stdx",
27782773
"text-size",
27792774
]

src/tools/rust-analyzer/Cargo.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,14 @@ vfs-notify = { path = "./crates/vfs-notify", version = "0.0.0" }
8989
vfs = { path = "./crates/vfs", version = "0.0.0" }
9090
edition = { path = "./crates/edition", version = "0.0.0" }
9191

92-
ra-ap-rustc_lexer = { version = "0.123", default-features = false }
93-
ra-ap-rustc_parse_format = { version = "0.121", default-features = false }
94-
ra-ap-rustc_index = { version = "0.123", default-features = false }
95-
ra-ap-rustc_abi = { version = "0.123", default-features = false }
96-
ra-ap-rustc_pattern_analysis = { version = "0.123", default-features = false }
97-
ra-ap-rustc_ast_ir = { version = "0.123", default-features = false }
98-
ra-ap-rustc_type_ir = { version = "0.123", default-features = false }
99-
ra-ap-rustc_next_trait_solver = { version = "0.123", default-features = false }
92+
ra-ap-rustc_lexer = { version = "0.126", default-features = false }
93+
ra-ap-rustc_parse_format = { version = "0.126", default-features = false }
94+
ra-ap-rustc_index = { version = "0.126", default-features = false }
95+
ra-ap-rustc_abi = { version = "0.126", default-features = false }
96+
ra-ap-rustc_pattern_analysis = { version = "0.126", default-features = false }
97+
ra-ap-rustc_ast_ir = { version = "0.126", default-features = false }
98+
ra-ap-rustc_type_ir = { version = "0.126", default-features = false }
99+
ra-ap-rustc_next_trait_solver = { version = "0.126", default-features = false }
100100

101101
# local crates that aren't published to crates.io. These should not have versions.
102102

src/tools/rust-analyzer/crates/hir-ty/src/display.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ impl<'db> HirDisplay for crate::next_solver::Const<'db> {
737737
match self.kind() {
738738
rustc_type_ir::ConstKind::Placeholder(_) => write!(f, "<placeholder>"),
739739
rustc_type_ir::ConstKind::Bound(db, bound_const) => {
740-
write!(f, "?{}.{}", db.as_u32(), bound_const.as_u32())
740+
write!(f, "?{}.{}", db.as_u32(), bound_const.var.as_u32())
741741
}
742742
rustc_type_ir::ConstKind::Infer(..) => write!(f, "#c#"),
743743
rustc_type_ir::ConstKind::Param(param) => {
@@ -1208,10 +1208,7 @@ impl<'db> HirDisplay for crate::next_solver::Ty<'db> {
12081208
let contains_impl_fn_ns = |bounds: &[BoundExistentialPredicate<'_>]| {
12091209
bounds.iter().any(|bound| match bound.skip_binder() {
12101210
rustc_type_ir::ExistentialPredicate::Trait(trait_ref) => {
1211-
let trait_ = match trait_ref.def_id {
1212-
SolverDefId::TraitId(id) => id,
1213-
_ => unreachable!(),
1214-
};
1211+
let trait_ = trait_ref.def_id.0;
12151212
fn_traits(db, trait_).any(|it| it == trait_)
12161213
}
12171214
_ => false,
@@ -2217,10 +2214,7 @@ impl HirDisplay for TraitRef {
22172214

22182215
impl<'db> HirDisplay for crate::next_solver::TraitRef<'db> {
22192216
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
2220-
let trait_ = match self.def_id {
2221-
SolverDefId::TraitId(id) => id,
2222-
_ => unreachable!(),
2223-
};
2217+
let trait_ = self.def_id.0;
22242218
f.start_location_link(trait_.into());
22252219
write!(f, "{}", f.db.trait_signature(trait_).name.display(f.db, f.edition()))?;
22262220
f.end_location_link();

0 commit comments

Comments
 (0)