Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

rust-analyzer subtree update #146086

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
lnicola wants to merge 182 commits into rust-lang:master
base: master
Choose a base branch
Loading
from lnicola:sync-from-ra
Open

Conversation

Copy link
Member

@lnicola lnicola commented Sep 1, 2025

Subtree update of rust-analyzer to rust-lang/rust-analyzer@21614ed.

Created using https://github.com/rust-lang/josh-sync.

r? @ghost

A4-Tacks and others added 30 commits August 4, 2025 01:59
Example
===
```rust
let x = 0ドル;
```
Old completions:
```rust
let x = if 1ドル {
 0ドル
};
```
This PR current completions:
```rust
let x = if 1ドル {
 2ドル
} else {
 0ドル
};
```
...-macro
fix: Correctly goto `From` impl when on `into()` even when the call is inside a macro
...perms
chore: fix crates/ide/src/folding_ranges.rs file perms
This caused rename to remove both, because it couldn't rename the derive-expanded one.
I spent some time trying to create a test for this, before giving up. But I checked manually that this works.
Slim down compile time artifact progress reports
remove `add_attr()` from edit_in_place.rs because it use `ted`.
...lace_named_generic_with_impl
remove `ted` from replace_named_generic_with_impl.rs
..._import
Migrate `expand_glob_import` assist to use `SyntaxEditor`
fix: Do not remove the original token when descending into derives
Remove only contain literals dbg statement
```rust
fn foo() {
 let n = 2;
 0ドルdbg!(3);
 dbg!(2.6);
 dbg!(1, 2.5);
 dbg!('x');
 dbg!(&n);
 dbg!(n);
 // needless comment
 dbg!("foo");0ドル
}
```
->
```rust
fn foo() {
 // needless comment
}
```
Old:
```rust
fn foo() {
 3;
 2.6;
 (1, 2.5);
 'x';
 &n;
 n;
 // needless comment
 "foo";
}
```
...lxvvyy
Report the incorrect payload when failing to deserialize lsp messages
...wpkmxw
Fix non-lsp compliant `Response` definition
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](raszi/node-tmp@v0.2.3...v0.2.4)
---
updated-dependencies:
- dependency-name: tmp
 dependency-version: 0.2.4
 dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
...ast_instead_of_str
In handlers/extract_module.rs, generate ast::Module instead of String
ChayimFriedman2 and others added 25 commits August 25, 2025 20:56
`NormalizesTo` is a private predicate that should not be used outside the solver. For normalization, rustc uses `AliasRelate`, so replace with that.
fix: Masquerade as nightly cargo when invoking flycheck with `-Zscript`
Make import sorting order follow 2024 edition style
...rmalize
fix: Normalize all types when finishing inference
feat: Add an option to remove reborrows from adjustment inlay hints
...colon
Fix ExprStmt delete semicolon for toggle_macro_delimiter
Replace it with normal `SolverDefId::TypeAliasId`.
The split caused a very funny bug where code was getting `TypeAliasId` where it expected `ForeignId`, because `TypeAliasId` had a `From` impl from `hir_def::TypeAliasId` and `ForeignId` had not, plus a careless `into()`.
I could've fixed this specific bug but opted to remove the split instead; currently, it just provides more room for bugs, as we don't have typed IDs for the solver anyway, and even when we'll have (hopefully), that doesn't seem like a very useful distinction, for example in hir-def foreign types are just `TypeAliasId` with some flags.
Constructing a test for this isn't trivial; the trivial test (creating a foreign type, even proving a trait bound for it) fails to fail before the change, probably because we don't use the new solver everywhere yet so we don't trigger this specific code path.
...lver
perf: Cache trait solving across queries in the same revision
...ated-unsafe-scope
fix: In highlight_related, when on an unsafe block, don't highlight unsafe operations of other unsafe blocks
...attach
fix: Attach the db in one more place in highlighting
Namely, mir lowering, const eval and IDE things.
minor: Don't require a full `InferenceTable` for `CastTy`
...0) to auto traits' substitutions
Chalk represents dyn types as a list of predicate, the self type should be there. The next solver represents them quite differently. The `Self` was forgotten for the auto trait case.
...s-improve
fix: Add progress bars to more places in analysis-stats
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.19 to 0.3.20.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](tokio-rs/tracing@tracing-subscriber-0.3.19...tracing-subscriber-0.3.20)
---
updated-dependencies:
- dependency-name: tracing-subscriber
 dependency-version: 0.3.20
 dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
...acing-subscriber-0.3.20
Bump tracing-subscriber from 0.3.19 to 0.3.20
...-dyn-auto-trait
fix: When mapping next-solver's `dyn` type, add `Self` (aka. bound var ^1.0) to auto traits' substitutions
...get-option
fix: Avoid `--target` option being given twice to `rustc` when invoked through `cargo rustc` while fetching target data layout
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. labels Sep 1, 2025
Copy link
Collaborator

rustbot commented Sep 1, 2025

rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead.

cc @rust-lang/rust-analyzer

Copy link
Collaborator

The job pr-check-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
 Checking toml v0.8.23
[RUSTC-TIMING] hashbrown test:false 0.545
 Checking inotify v0.11.0
[RUSTC-TIMING] icu_normalizer test:false 0.467
error[E0277]: the trait bound `rustc_type_ir::BoundVar: BoundVarLike<next_solver::interner::DbInterner<'db>>` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/consts.rs:341:18
 |
341 | type Bound = rustc_type_ir::BoundVar;
 | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `BoundVarLike<next_solver::interner::DbInterner<'db>>` is not implemented for `rustc_type_ir::BoundVar`
 |
 = help: the following other types implement trait `BoundVarLike<I>`:
 `region::BoundRegion` implements `BoundVarLike<next_solver::interner::DbInterner<'db>>`
 `rustc_middle::ty::BoundConst` implements `BoundVarLike<rustc_middle::ty::context::TyCtxt<'tcx>>`
 `rustc_middle::ty::region::BoundRegion` implements `BoundVarLike<rustc_middle::ty::context::TyCtxt<'tcx>>`
 `rustc_middle::ty::sty::BoundTy` implements `BoundVarLike<rustc_middle::ty::context::TyCtxt<'tcx>>`
 `ty::BoundTy` implements `BoundVarLike<next_solver::interner::DbInterner<'db>>`
note: required by a bound in `rustc_type_ir::inherent::PlaceholderLike::Bound`
 --> /checkout/compiler/rustc_type_ir/src/inherent.rs:540:17
 |
540 | type Bound: BoundVarLike<I>;
 | ^^^^^^^^^^^^^^^ required by this bound in `PlaceholderLike::Bound`
[RUSTC-TIMING] toml test:false 0.354
 Checking cargo-util-schemas v0.8.2
[RUSTC-TIMING] inotify test:false 0.222
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:30:25
 |
 30 | IntUnificationTable(sv::UndoLog<ut::Delegate<IntVid>>),
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
note: required by a bound in `ena::snapshot_vec::UndoLog`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:32:21
 |
 32 | pub enum UndoLog<D: SnapshotVecDelegate> {
 | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UndoLog`
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:31:27
 |
 31 | FloatUnificationTable(sv::UndoLog<ut::Delegate<FloatVid>>),
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<FloatVid>` to implement `SnapshotVecDelegate`
note: required by a bound in `ena::snapshot_vec::UndoLog`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:32:21
 |
 32 | pub enum UndoLog<D: SnapshotVecDelegate> {
 | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UndoLog`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:41:13
 |
 37 | / macro_rules! impl_from {
 38 | | ($($ctor:ident ($ty:ty),)*) => {
 39 | | $(
 40 | | impl<'db> From<$ty> for UndoLog<'db> {
 41 | | fn from(x: $ty) -> Self {
 | | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
... |
 47 | | }
 | |_- in this expansion of `impl_from!`
...
 50 | / impl_from! {
 51 | | RegionConstraintCollector(region_constraints::UndoLog<'db>),
 52 | |
 53 | | TypeVariables(sv::UndoLog<ut::Delegate<type_variable::TyVidEqKey<'db>>>),
... |
 59 | | RegionUnificationTable(sv::UndoLog<ut::Delegate<RegionVidKey<'db>>>),
 60 | | }
 | |_- in this macro invocation
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
note: required by a bound in `ena::snapshot_vec::UndoLog`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:32:21
 |
 32 | pub enum UndoLog<D: SnapshotVecDelegate> {
 | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UndoLog`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:40:19
 |
 37 | / macro_rules! impl_from {
 38 | | ($($ctor:ident ($ty:ty),)*) => {
 39 | | $(
 40 | | impl<'db> From<$ty> for UndoLog<'db> {
 | | ^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
... |
 47 | | }
 | |_- in this expansion of `impl_from!`
...
 50 | / impl_from! {
 51 | | RegionConstraintCollector(region_constraints::UndoLog<'db>),
 52 | |
 53 | | TypeVariables(sv::UndoLog<ut::Delegate<type_variable::TyVidEqKey<'db>>>),
... |
 59 | | RegionUnificationTable(sv::UndoLog<ut::Delegate<RegionVidKey<'db>>>),
 60 | | }
 | |_- in this macro invocation
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
note: required by a bound in `ena::snapshot_vec::UndoLog`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:32:21
 |
 32 | pub enum UndoLog<D: SnapshotVecDelegate> {
 | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UndoLog`
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:41:13
 |
 37 | / macro_rules! impl_from {
 38 | | ($($ctor:ident ($ty:ty),)*) => {
 39 | | $(
 40 | | impl<'db> From<$ty> for UndoLog<'db> {
 41 | | fn from(x: $ty) -> Self {
 | | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
... |
 47 | | }
 | |_- in this expansion of `impl_from!`
...
 50 | / impl_from! {
 51 | | RegionConstraintCollector(region_constraints::UndoLog<'db>),
 52 | |
 53 | | TypeVariables(sv::UndoLog<ut::Delegate<type_variable::TyVidEqKey<'db>>>),
... |
 59 | | RegionUnificationTable(sv::UndoLog<ut::Delegate<RegionVidKey<'db>>>),
 60 | | }
 | |_- in this macro invocation
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<FloatVid>` to implement `SnapshotVecDelegate`
note: required by a bound in `ena::snapshot_vec::UndoLog`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:32:21
 |
 32 | pub enum UndoLog<D: SnapshotVecDelegate> {
 | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UndoLog`
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:40:19
 |
 37 | / macro_rules! impl_from {
 38 | | ($($ctor:ident ($ty:ty),)*) => {
 39 | | $(
 40 | | impl<'db> From<$ty> for UndoLog<'db> {
 | | ^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
... |
 47 | | }
 | |_- in this expansion of `impl_from!`
...
 50 | / impl_from! {
 51 | | RegionConstraintCollector(region_constraints::UndoLog<'db>),
 52 | |
 53 | | TypeVariables(sv::UndoLog<ut::Delegate<type_variable::TyVidEqKey<'db>>>),
... |
 59 | | RegionUnificationTable(sv::UndoLog<ut::Delegate<RegionVidKey<'db>>>),
 60 | | }
 | |_- in this macro invocation
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<FloatVid>` to implement `SnapshotVecDelegate`
note: required by a bound in `ena::snapshot_vec::UndoLog`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:32:21
 |
 32 | pub enum UndoLog<D: SnapshotVecDelegate> {
 | ^^^^^^^^^^^^^^^^^^^ required by this bound in `UndoLog`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/mod.rs:100:41
 |
100 | pub(crate) int_unification_storage: ut::UnificationTableStorage<IntVid>,
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/mod.rs:103:43
 |
103 | pub(crate) float_unification_storage: ut::UnificationTableStorage<FloatVid>,
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
error[E0277]: the trait bound `rustc_type_ir::BoundVar: BoundVarLike<next_solver::interner::DbInterner<'db>>` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:926:23
 |
926 | type BoundConst = rustc_type_ir::BoundVar;
 | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `BoundVarLike<next_solver::interner::DbInterner<'db>>` is not implemented for `rustc_type_ir::BoundVar`
 |
 = help: the following other types implement trait `BoundVarLike<I>`:
 `region::BoundRegion` implements `BoundVarLike<next_solver::interner::DbInterner<'db>>`
 `rustc_middle::ty::BoundConst` implements `BoundVarLike<rustc_middle::ty::context::TyCtxt<'tcx>>`
 `rustc_middle::ty::region::BoundRegion` implements `BoundVarLike<rustc_middle::ty::context::TyCtxt<'tcx>>`
 `rustc_middle::ty::sty::BoundTy` implements `BoundVarLike<rustc_middle::ty::context::TyCtxt<'tcx>>`
 `ty::BoundTy` implements `BoundVarLike<next_solver::interner::DbInterner<'db>>`
note: required by a bound in `rustc_type_ir::Interner::BoundConst`
 --> /checkout/compiler/rustc_type_ir/src/interner.rs:143:22
 |
143 | type BoundConst: BoundVarLike<Self>;
 | ^^^^^^^^^^^^^^^^^^ required by this bound in `Interner::BoundConst`
error[E0046]: not all trait items implemented, missing: `TraitId`, `require_trait_lang_item`, `is_trait_lang_item`, `as_trait_lang_item`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:861:1
 |
861 | impl<'db> rustc_type_ir::Interner for DbInterner<'db> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `TraitId`, `require_trait_lang_item`, `is_trait_lang_item`, `as_trait_lang_item` in implementation
 |
 = help: implement the missing item: `type TraitId = /* Type */;`
 = help: implement the missing item: `fn require_trait_lang_item(self, _: SolverTraitLangItem) -> <Self as rustc_type_ir::Interner>::TraitId { todo!() }`
 = help: implement the missing item: `fn is_trait_lang_item(self, _: <Self as rustc_type_ir::Interner>::TraitId, _: SolverTraitLangItem) -> bool { todo!() }`
 = help: implement the missing item: `fn as_trait_lang_item(self, _: <Self as rustc_type_ir::Interner>::TraitId) -> std::option::Option<SolverTraitLangItem> { todo!() }`
error[E0046]: not all trait items implemented, missing: `new_coroutine_witness_for_coroutine`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/ty.rs:530:1
 |
530 | impl<'db> rustc_type_ir::inherent::Ty<DbInterner<'db>> for Ty<'db> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `new_coroutine_witness_for_coroutine` in implementation
 |
 = help: implement the missing item: `fn new_coroutine_witness_for_coroutine(_: next_solver::interner::DbInterner<'db>, _: <next_solver::interner::DbInterner<'db> as rustc_type_ir::Interner>::DefId, _: <next_solver::interner::DbInterner<'db> as rustc_type_ir::Interner>::GenericArgs) -> Self { todo!() }`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:54:25
 |
 54 | IntUnificationTable(sv::UndoLog<ut::Delegate<IntVid>>),
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
---
 Checking filetime v0.2.25
error[E0027]: pattern does not mention field `goal`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/fulfill.rs:170:21
 |
170 | let GoalEvaluation { certainty, has_changed, stalled_on } = match result {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing field `goal`
 |
help: include the missing field in the pattern
 |
170 | let GoalEvaluation { certainty, has_changed, stalled_on, goal } = match result {
 | ++++++
help: if you don't care about this missing field, you can explicitly ignore it
 |
170 | let GoalEvaluation { certainty, has_changed, stalled_on, goal: _ } = match result {
 | +++++++++
help: or always ignore missing fields here
 |
170 | let GoalEvaluation { certainty, has_changed, stalled_on, .. } = match result {
 | ++++
error[E0560]: struct `CoroutineClosureArgsParts<next_solver::interner::DbInterner<'db>>` has no field named `coroutine_witness_ty`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/generic_arg.rs:386:17
 |
386 | coroutine_witness_ty: coroutine_witness_ty.expect_ty(),
 | ^^^^^^^^^^^^^^^^^^^^ `CoroutineClosureArgsParts<_>` does not have this field
 |
 = note: all struct fields are already assigned
error[E0560]: struct `CoroutineArgsParts<next_solver::interner::DbInterner<'db>>` has no field named `witness`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/generic_arg.rs:402:21
 |
402 | witness: Ty::new_unit(interner),
 | ^^^^^^^ `CoroutineArgsParts<_>` does not have this field
 |
 = note: all struct fields are already assigned
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:105:39
 |
105 | ... inner.int_unification_table().probe_value(vid),
 | ^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
[RUSTC-TIMING] filetime test:false 0.097
 Checking notify-types v2.0.0
error[E0599]: the method `probe_value` exists for struct `UnificationTable<InPlace<IntVid, &mut Vec<VarValue<IntVid>>, ...>>`, but its trait bounds were not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:105:63
 |
105 | ... inner.int_unification_table().probe_value(vid),
 | ^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:56:1
 |
 56 | / pub struct InPlace<
 57 | | K: UnifyKey,
 58 | | V: sv::VecLike<Delegate<K>> = Vec<VarValue<K>>,
 59 | | L = VecLog<sv::UndoLog<Delegate<K>>>,
 60 | | > {
 | |_- doesn't satisfy `<_ as UnificationStoreBase>::Key = IntVid`
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- doesn't satisfy `IntVid: ena::unify::UnifyKey`
 |
 = note: the following trait bounds were not satisfied:
 `IntVid: ena::unify::UnifyKey`
 `IntVid: ena::unify::UnifyKey`
 which is required by `<InPlace<IntVid, &mut Vec<VarValue<IntVid>>, &mut InferCtxtUndoLogs<'_>> as UnificationStoreBase>::Key = IntVid`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:107:46
 |
107 | ... if inner.int_unification_table().find(vid) == vid
 | ^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
error[E0599]: the method `find` exists for struct `UnificationTable<InPlace<IntVid, &mut Vec<VarValue<IntVid>>, ...>>`, but its trait bounds were not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:107:70
 |
107 | ... if inner.int_unification_table().find(vid) == vid
 | ^^^^ method cannot be called due to unsatisfied trait bounds
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:56:1
 |
 56 | / pub struct InPlace<
 57 | | K: UnifyKey,
 58 | | V: sv::VecLike<Delegate<K>> = Vec<VarValue<K>>,
 59 | | L = VecLog<sv::UndoLog<Delegate<K>>>,
 60 | | > {
 | |_- doesn't satisfy `<_ as UnificationStoreBase>::Key = IntVid`
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- doesn't satisfy `IntVid: ena::unify::UnifyKey`
 |
 = note: the following trait bounds were not satisfied:
 `IntVid: ena::unify::UnifyKey`
 `IntVid: ena::unify::UnifyKey`
 which is required by `<InPlace<IntVid, &mut Vec<VarValue<IntVid>>, &mut InferCtxtUndoLogs<'_>> as UnificationStoreBase>::Key = IntVid`
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:113:39
 |
113 | ... inner.float_unification_table().probe_value(vid),
 | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
error[E0599]: the method `probe_value` exists for struct `UnificationTable<InPlace<FloatVid, &mut Vec<VarValue<FloatVid>>, ...>>`, but its trait bounds were not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:113:65
 |
113 | ... inner.float_unification_table().probe_value(vid),
 | ^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:56:1
 |
 56 | / pub struct InPlace<
 57 | | K: UnifyKey,
 58 | | V: sv::VecLike<Delegate<K>> = Vec<VarValue<K>>,
 59 | | L = VecLog<sv::UndoLog<Delegate<K>>>,
 60 | | > {
 | |_- doesn't satisfy `<_ as UnificationStoreBase>::Key = FloatVid`
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- doesn't satisfy `FloatVid: ena::unify::UnifyKey`
 |
 = note: the following trait bounds were not satisfied:
 `FloatVid: ena::unify::UnifyKey`
 `FloatVid: ena::unify::UnifyKey`
 which is required by `<InPlace<FloatVid, &mut Vec<VarValue<FloatVid>>, &mut InferCtxtUndoLogs<'_>> as UnificationStoreBase>::Key = FloatVid`
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:115:46
 |
115 | ... if inner.float_unification_table().find(vid) == vid
 | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
[RUSTC-TIMING] notify_types test:false 0.110
 Compiling pulldown-cmark v0.9.6
error[E0599]: the method `find` exists for struct `UnificationTable<InPlace<FloatVid, &mut Vec<VarValue<FloatVid>>, ...>>`, but its trait bounds were not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:115:72
 |
115 | ... if inner.float_unification_table().find(vid) == vid
 | ^^^^ method cannot be called due to unsatisfied trait bounds
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:56:1
 |
 56 | / pub struct InPlace<
 57 | | K: UnifyKey,
 58 | | V: sv::VecLike<Delegate<K>> = Vec<VarValue<K>>,
 59 | | L = VecLog<sv::UndoLog<Delegate<K>>>,
 60 | | > {
 | |_- doesn't satisfy `<_ as UnificationStoreBase>::Key = FloatVid`
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- doesn't satisfy `FloatVid: ena::unify::UnifyKey`
 |
 = note: the following trait bounds were not satisfied:
 `FloatVid: ena::unify::UnifyKey`
 `FloatVid: ena::unify::UnifyKey`
 which is required by `<InPlace<FloatVid, &mut Vec<VarValue<FloatVid>>, &mut InferCtxtUndoLogs<'_>> as UnificationStoreBase>::Key = FloatVid`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:177:33
 |
177 | self.inner.borrow_mut().int_unification_table().union(a, b);
 | ^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
error[E0599]: the method `union` exists for struct `UnificationTable<InPlace<IntVid, &mut Vec<VarValue<IntVid>>, ...>>`, but its trait bounds were not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:177:57
 |
177 | self.inner.borrow_mut().int_unification_table().union(a, b);
 | ^^^^^ method cannot be called due to unsatisfied trait bounds
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:56:1
 |
 56 | / pub struct InPlace<
 57 | | K: UnifyKey,
 58 | | V: sv::VecLike<Delegate<K>> = Vec<VarValue<K>>,
 59 | | L = VecLog<sv::UndoLog<Delegate<K>>>,
 60 | | > {
 | |_- doesn't satisfy `<_ as UnificationStoreBase>::Key = IntVid`
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- doesn't satisfy `IntVid: ena::unify::UnifyKey`
 |
 = note: the following trait bounds were not satisfied:
 `IntVid: ena::unify::UnifyKey`
 `IntVid: ena::unify::UnifyKey`
 which is required by `<InPlace<IntVid, &mut Vec<VarValue<IntVid>>, &mut InferCtxtUndoLogs<'_>> as UnificationStoreBase>::Key = IntVid`
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:181:33
 |
181 | self.inner.borrow_mut().float_unification_table().union(a, b);
 | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `InPlace`
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:57:8
 |
 56 | pub struct InPlace<
 | ------- required by a bound in this struct
 57 | K: UnifyKey,
 | ^^^^^^^^ required by this bound in `InPlace`
error[E0599]: the method `union` exists for struct `UnificationTable<InPlace<FloatVid, &mut Vec<VarValue<FloatVid>>, ...>>`, but its trait bounds were not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/context.rs:181:59
 |
181 | self.inner.borrow_mut().float_unification_table().union(a, b);
 | ^^^^^ method cannot be called due to unsatisfied trait bounds
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/backing_vec.rs:56:1
 |
 56 | / pub struct InPlace<
 57 | | K: UnifyKey,
 58 | | V: sv::VecLike<Delegate<K>> = Vec<VarValue<K>>,
 59 | | L = VecLog<sv::UndoLog<Delegate<K>>>,
 60 | | > {
 | |_- doesn't satisfy `<_ as UnificationStoreBase>::Key = FloatVid`
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- doesn't satisfy `FloatVid: ena::unify::UnifyKey`
 |
 = note: the following trait bounds were not satisfied:
 `FloatVid: ena::unify::UnifyKey`
 `FloatVid: ena::unify::UnifyKey`
---
 |
183 | Ok(PlaceholderReplacer::replace_placeholders(
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 |
note: expected `IndexMap<Placeholder<...>, ..., ...>`, found a different `IndexMap<Placeholder<...>, ..., ...>`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/project/solve_normalize.rs:185:17
 |
185 | mapped_regions,
 | ^^^^^^^^^^^^^^
note: two different versions of crate `indexmap` are being used; two types coming from two different versions of the same crate are different types even if they look the same
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.9.0/src/map.rs:87:1
 |
 87 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `IndexMap`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.10.0/src/map.rs:88:1
 |
 88 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `indexmap::map::IndexMap`
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer.rs:50:5
 |
 50 | use indexmap::IndexSet;
 | -------- one version of crate `indexmap` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:7:1
 |
 7 | extern crate rustc_index;
 | ------------------------- one version of crate `indexmap` used here, as a dependency of crate `rustc_serialize`
 = help: you can use `cargo tree` to explore your dependency tree
note: expected `IndexMap<Placeholder<BoundTy>, ..., ...>`, found a different `IndexMap<Placeholder<BoundTy>, ..., ...>`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/project/solve_normalize.rs:186:17
 |
186 | mapped_types,
 | ^^^^^^^^^^^^
note: two different versions of crate `indexmap` are being used; two types coming from two different versions of the same crate are different types even if they look the same
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.9.0/src/map.rs:87:1
 |
 87 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `IndexMap`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.10.0/src/map.rs:88:1
 |
 88 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `indexmap::map::IndexMap`
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer.rs:50:5
 |
 50 | use indexmap::IndexSet;
 | -------- one version of crate `indexmap` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:7:1
 |
 7 | extern crate rustc_index;
 | ------------------------- one version of crate `indexmap` used here, as a dependency of crate `rustc_serialize`
 = help: you can use `cargo tree` to explore your dependency tree
note: expected `IndexMap<Placeholder<...>, ..., ...>`, found a different `IndexMap<Placeholder<...>, ..., ...>`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/project/solve_normalize.rs:187:17
 |
187 | mapped_consts,
 | ^^^^^^^^^^^^^
note: two different versions of crate `indexmap` are being used; two types coming from two different versions of the same crate are different types even if they look the same
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.9.0/src/map.rs:87:1
 |
 87 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `IndexMap`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.10.0/src/map.rs:88:1
 |
 88 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `indexmap::map::IndexMap`
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer.rs:50:5
 |
 50 | use indexmap::IndexSet;
 | -------- one version of crate `indexmap` used here, as a direct dependency of the current crate
---
 = help: you can use `cargo tree` to explore your dependency tree
note: associated function defined here
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/util.rs:861:12
 |
861 | pub fn replace_placeholders<T: TypeFoldable<DbInterner<'db>>>(
 | ^^^^^^^^^^^^^^^^^^^^
862 | infcx: &'a InferCtxt<'db>,
863 | mapped_regions: FxIndexMap<PlaceholderRegion, BoundRegion>,
 | ----------------------------------------------------------
864 | mapped_types: FxIndexMap<Placeholder<BoundTy>, BoundTy>,
 | -------------------------------------------------------
865 | mapped_consts: FxIndexMap<PlaceholderConst, BoundVar>,
 | -----------------------------------------------------
error[E0308]: arguments to this function are incorrect
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/project/solve_normalize.rs:210:16
 |
210 | Ok(PlaceholderReplacer::replace_placeholders(
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 |
note: expected `IndexMap<Placeholder<...>, ..., ...>`, found a different `IndexMap<Placeholder<...>, ..., ...>`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/project/solve_normalize.rs:212:17
 |
212 | mapped_regions,
 | ^^^^^^^^^^^^^^
note: two different versions of crate `indexmap` are being used; two types coming from two different versions of the same crate are different types even if they look the same
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.9.0/src/map.rs:87:1
 |
 87 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `IndexMap`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.10.0/src/map.rs:88:1
 |
 88 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `indexmap::map::IndexMap`
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer.rs:50:5
 |
 50 | use indexmap::IndexSet;
 | -------- one version of crate `indexmap` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:7:1
 |
 7 | extern crate rustc_index;
 | ------------------------- one version of crate `indexmap` used here, as a dependency of crate `rustc_serialize`
 = help: you can use `cargo tree` to explore your dependency tree
note: expected `IndexMap<Placeholder<BoundTy>, ..., ...>`, found a different `IndexMap<Placeholder<BoundTy>, ..., ...>`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/project/solve_normalize.rs:213:17
 |
213 | mapped_types,
 | ^^^^^^^^^^^^
note: two different versions of crate `indexmap` are being used; two types coming from two different versions of the same crate are different types even if they look the same
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.9.0/src/map.rs:87:1
 |
 87 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `IndexMap`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.10.0/src/map.rs:88:1
 |
 88 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `indexmap::map::IndexMap`
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer.rs:50:5
 |
 50 | use indexmap::IndexSet;
 | -------- one version of crate `indexmap` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:7:1
 |
 7 | extern crate rustc_index;
 | ------------------------- one version of crate `indexmap` used here, as a dependency of crate `rustc_serialize`
 = help: you can use `cargo tree` to explore your dependency tree
note: expected `IndexMap<Placeholder<...>, ..., ...>`, found a different `IndexMap<Placeholder<...>, ..., ...>`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/project/solve_normalize.rs:214:17
 |
214 | mapped_consts,
 | ^^^^^^^^^^^^^
note: two different versions of crate `indexmap` are being used; two types coming from two different versions of the same crate are different types even if they look the same
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.9.0/src/map.rs:87:1
 |
 87 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `IndexMap`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.10.0/src/map.rs:88:1
 |
 88 | pub struct IndexMap<K, V, S = RandomState> {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `indexmap::map::IndexMap`
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer.rs:50:5
 |
 50 | use indexmap::IndexSet;
 | -------- one version of crate `indexmap` used here, as a direct dependency of the current crate
---
 = help: you can use `cargo tree` to explore your dependency tree
note: associated function defined here
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/util.rs:861:12
 |
861 | pub fn replace_placeholders<T: TypeFoldable<DbInterner<'db>>>(
 | ^^^^^^^^^^^^^^^^^^^^
862 | infcx: &'a InferCtxt<'db>,
863 | mapped_regions: FxIndexMap<PlaceholderRegion, BoundRegion>,
 | ----------------------------------------------------------
864 | mapped_types: FxIndexMap<Placeholder<BoundTy>, BoundTy>,
 | -------------------------------------------------------
865 | mapped_consts: FxIndexMap<PlaceholderConst, BoundVar>,
 | -----------------------------------------------------
[RUSTC-TIMING] serde_spanned test:false 0.067
error[E0063]: missing field `stable_hash` in initializer of `WithCachedTypeInfo<_>`
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/ty.rs:49:22
---
[RUSTC-TIMING] ordered_float test:false 0.226
[RUSTC-TIMING] winnow test:false 1.739
[RUSTC-TIMING] erased_serde test:false 0.510
 Checking project-model v0.0.0 (/checkout/src/tools/rust-analyzer/crates/project-model)
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/at.rs:72:27
 |
 72 | pub fn fork(&self) -> Self {
 | ^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/at.rs:76:20
 |
 76 | inner: self.inner.clone(),
 | ^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/at.rs:85:86
 |
 85 | pub fn fork_with_typing_mode(&self, typing_mode: TypingMode<DbInterner<'db>>) -> Self {
 | ^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
error[E0277]: the trait bound `FloatVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/at.rs:92:20
 |
 92 | inner: self.inner.clone(),
 | ^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `FloatVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:573:1
 |
573 | / rustc_index::newtype_index! {
574 | | /// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
575 | | #[encodable]
576 | | #[orderable]
577 | | #[debug_format = "?{}f"]
578 | | #[gate_rustc_only]
579 | | pub struct FloatVid {}
 | |_______________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/opaque_types/table.rs:154:32
 |
154 | self.undo_log.push(UndoLog::OpaqueTypes(key, Some(prev)));
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/opaque_types/table.rs:158:28
 |
158 | self.undo_log.push(UndoLog::OpaqueTypes(key, None));
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/opaque_types/table.rs:164:28
 |
164 | self.undo_log.push(UndoLog::DuplicateOpaqueType);
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:41:32
 |
 37 | / macro_rules! impl_from {
 38 | | ($($ctor:ident ($ty:ty),)*) => {
 39 | | $(
 40 | | impl<'db> From<$ty> for UndoLog<'db> {
 41 | | fn from(x: $ty) -> Self {
 | | ^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
... |
 47 | | }
 | |_- in this expansion of `impl_from!`
...
 50 | / impl_from! {
 51 | | RegionConstraintCollector(region_constraints::UndoLog<'db>),
 52 | |
 53 | | TypeVariables(sv::UndoLog<ut::Delegate<type_variable::TyVidEqKey<'db>>>),
... |
 59 | | RegionUnificationTable(sv::UndoLog<ut::Delegate<RegionVidKey<'db>>>),
 60 | | }
 | |_- in this macro invocation
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:87:10
 |
 87 | #[derive(Clone, Default)]
 | ^^^^^
 | |
 | the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 | in this derive macro expansion
 --> /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/clone.rs:225:1
 |
 = note: in this expansion of `#[derive(Clone)]`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:89:5
 |
 87 | #[derive(Clone, Default)]
 | ----- in this derive macro expansion
 88 | pub(crate) struct InferCtxtUndoLogs<'db> {
 89 | logs: Vec<UndoLog<'db>>,
 | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 --> /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/clone.rs:225:1
 |
 = note: in this expansion of `#[derive(Clone)]`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:87:17
 |
 87 | #[derive(Clone, Default)]
 | ^^^^^^^
 | |
 | the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 | in this derive macro expansion
 --> /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/default.rs:147:1
 |
 = note: in this expansion of `#[derive(Default)]`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;
 | ----------------------- one version of crate `ena` used here, as a dependency of crate `rustc_data_structures`
 |
 ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/snapshot_vec.rs:67:1
 |
 67 | pub trait VecLike<D>: AsRef<[D::Value]> + AsMut<[D::Value]> + Rollback<UndoLog<D>>
 | ---------------------------------------------------------------------------------- this is the found trait
 |
 ::: /checkout/compiler/rustc_type_ir/src/ty_kind.rs:564:1
 |
564 | / rustc_index::newtype_index! {
565 | | /// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
566 | | #[encodable]
567 | | #[orderable]
568 | | #[debug_format = "?{}i"]
569 | | #[gate_rustc_only]
570 | | pub struct IntVid {}
 | |_____________________- this type doesn't implement the required trait
 = help: you can use `cargo tree` to explore your dependency tree
 = note: required for `ena::unify::Delegate<IntVid>` to implement `SnapshotVecDelegate`
error[E0277]: the trait bound `IntVid: ena::unify::UnifyKey` is not satisfied
 --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/infer/snapshot/undo_log.rs:89:5
 |
 87 | #[derive(Clone, Default)]
 | ------- in this derive macro expansion
 88 | pub(crate) struct InferCtxtUndoLogs<'db> {
 89 | logs: Vec<UndoLog<'db>>,
 | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `ena::unify::UnifyKey` is not implemented for `IntVid`
 --> /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/default.rs:147:1
 |
 = note: in this expansion of `#[derive(Default)]`
 |
note: there are multiple different versions of crate `ena` in the dependency graph
 --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ena-0.14.3/src/unify/mod.rs:63:1
 |
 63 | pub trait UnifyKey: Copy + Clone + Debug + PartialEq {
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/infer/unify.rs:11:5
 |
 11 | use ena::unify::UnifyKey;
 | --- one version of crate `ena` used here, as a direct dependency of the current crate
 |
 ::: src/tools/rust-analyzer/crates/hir-ty/src/lib.rs:13:1
 |
 13 | extern crate rustc_abi;

Copy link
Contributor

There are some changes on the solver crates from what r-a currently uses, I think it'll be easier to update r-a first to use the newest solver crates (are they published?) I can take care of that, if they are published.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue.
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /