Skip to content

Conversation

lcnr
Copy link
Contributor

@lcnr lcnr commented Sep 22, 2025

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Sep 22, 2025
@lcnr
Copy link
Contributor Author

lcnr commented Sep 22, 2025

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Sep 22, 2025
predefined opaques use `List` directly
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Sep 22, 2025
@rust-log-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)

error[E0412]: cannot find type `PredefinedOpaquesData` in module `rustc_type_ir::solve`
  --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/opaques.rs:11:61
   |
11 | pub type PredefinedOpaquesData<'db> = rustc_type_ir::solve::PredefinedOpaquesData<DbInterner<'db>>;
   |                                                             ^^^^^^^^^^^^^^^^^^^^^ not found in `rustc_type_ir::solve`
   |
help: consider importing one of these items
   |
 3 + use crate::next_solver::PredefinedOpaquesData;
   |
 3 + use ra_ap_rustc_next_trait_solver::solve::PredefinedOpaquesData;
   |
 3 + use ra_ap_rustc_type_ir::solve::PredefinedOpaquesData;
   |
help: if you import `PredefinedOpaquesData`, refer to it directly
   |
11 - pub type PredefinedOpaquesData<'db> = rustc_type_ir::solve::PredefinedOpaquesData<DbInterner<'db>>;
11 + pub type PredefinedOpaquesData<'db> = PredefinedOpaquesData<DbInterner<'db>>;
   |

error[E0412]: cannot find type `PredefinedOpaquesData` in module `rustc_type_ir::solve`
  --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/opaques.rs:18:34
   |
18 |     kind_: rustc_type_ir::solve::PredefinedOpaquesData<DbInterner<'db>>,
   |                                  ^^^^^^^^^^^^^^^^^^^^^ not found in `rustc_type_ir::solve`
   |
help: consider importing one of these items
   |
 3 + use crate::next_solver::PredefinedOpaquesData;
   |
 3 + use ra_ap_rustc_next_trait_solver::solve::PredefinedOpaquesData;
   |
 3 + use ra_ap_rustc_type_ir::solve::PredefinedOpaquesData;
   |
help: if you import `PredefinedOpaquesData`, refer to it directly
   |
18 -     kind_: rustc_type_ir::solve::PredefinedOpaquesData<DbInterner<'db>>,
18 +     kind_: PredefinedOpaquesData<DbInterner<'db>>,
   |

[RUSTC-TIMING] build_script_build test:false 0.097
    Checking notify v8.0.0
[RUSTC-TIMING] notify test:false 0.205
[RUSTC-TIMING] cargo_metadata test:false 0.911
[RUSTC-TIMING] typeid test:false 0.041
[RUSTC-TIMING] idna_adapter test:false 0.065
[RUSTC-TIMING] num_traits test:false 0.668
    Checking proc-macro-api v0.0.0 (/checkout/src/tools/rust-analyzer/crates/proc-macro-api)
error[E0277]: the trait bound `opaques::PredefinedOpaques<'db>: SliceLike` is not satisfied
   --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:911:30
    |
911 |     type PredefinedOpaques = PredefinedOpaques<'db>;
    |                              ^^^^^^^^^^^^^^^^^^^^^^ the trait `SliceLike` is not implemented for `opaques::PredefinedOpaques<'db>`
    |
    = help: the following other types implement trait `SliceLike`:
              &'a S
              &'a [T; N]
              &'a [T]
              &'a rustc_middle::ty::list::RawList<H, T>
              PatList<'db>
              generic_arg::GenericArgs<'db>
              next_solver::interner::BoundVarKinds
              next_solver::interner::CanonicalVars<'db>
            and 6 others
note: required by a bound in `rustc_type_ir::Interner::PredefinedOpaques`
   --> /checkout/compiler/rustc_type_ir/src/interner.rs:71:11
    |
 66 |     type PredefinedOpaques: Copy
    |          ----------------- required by a bound in this associated type
...
 71 |         + SliceLike<Item = (ty::OpaqueTypeKey<Self>, Self::Ty)>;
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Interner::PredefinedOpaques`

[RUSTC-TIMING] indexmap test:false 0.582
[RUSTC-TIMING] toml_datetime test:false 0.183
[RUSTC-TIMING] proc_macro_api test:false 0.511
[RUSTC-TIMING] serde_spanned test:false 0.066
---
[RUSTC-TIMING] ordered_float test:false 0.219
error[E0609]: no field `0` on type `T0`
  --> src/tools/rust-analyzer/crates/hir-ty/src/next_solver/opaques.rs:15:1
   |
15 | #[salsa::interned(constructor = new_, debug)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   | |
   | unknown field
   | type parameter 'T0' declared here
   | in this procedural macro expansion
   |
  ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salsa-macros-0.23.0/src/lib.rs:64:1
   |
64 | pub fn interned(args: TokenStream, input: TokenStream) -> TokenStream {
   | --------------------------------------------------------------------- in this expansion of `#[salsa::interned]`

[RUSTC-TIMING] winnow test:false 1.706
[RUSTC-TIMING] erased_serde test:false 0.483
    Checking project-model v0.0.0 (/checkout/src/tools/rust-analyzer/crates/project-model)
error[E0308]: mismatched types
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salsa-macro-rules-0.23.0/src/setup_interned_struct.rs:219:25
    |
  3 | macro_rules! setup_interned_struct {
    | ---------------------------------- in this expansion of `salsa::plumbing::setup_interned_struct!` (#2)
...
218 |                     $Configuration::ingredient(db).intern(db.as_dyn_database(),
    |                                                    ------ arguments to this method are incorrect
219 |                         StructKey::<$db_lt>($($field_id,)* std::marker::PhantomData::default()), |_, data| ($($zalsa::interned::Lookup::i...
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter `T0`, found `StructKey<'_, T0>`
    |
   ::: src/tools/rust-analyzer/crates/hir-ty/src/next_solver/opaques.rs:15:1
    |
 15 | #[salsa::interned(constructor = new_, debug)]
    | ---------------------------------------------
    | |
    | expected this type parameter
    | in this procedural macro expansion (#1)
    | in this macro invocation (#2)
    |
   ::: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salsa-macros-0.23.0/src/lib.rs:64:1
    |
 64 | pub fn interned(args: TokenStream, input: TokenStream) -> TokenStream {
    | --------------------------------------------------------------------- in this expansion of `#[salsa::interned]` (#1)
    |
    = note: expected type parameter `T0`
                       found struct `opaques::_::StructKey<'db, T0>`
note: method defined here
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salsa-0.23.0/src/interned.rs:298:12
    |
298 |     pub fn intern<'db, Key>(
    |            ^^^^^^

[RUSTC-TIMING] nix test:false 1.345
[RUSTC-TIMING] build_script_build test:false 0.224
   Compiling xflags-macros v0.3.2

@rust-bors
Copy link

rust-bors bot commented Sep 22, 2025

☀️ Try build successful (CI)
Build commit: cd6acad (cd6acadd52ed965a3d15c5e3987ae53de1fd8f7b, parent: 9f32ccf35fb877270bc44a86a126440f04d676d0)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (cd6acad): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.2% [-0.2%, -0.2%] 1
Improvements ✅
(secondary)
-0.2% [-0.3%, -0.2%] 19
All ❌✅ (primary) -0.2% [-0.2%, -0.2%] 1

Max RSS (memory usage)

Results (primary 2.4%, secondary -1.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.4% [2.2%, 2.5%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.9% [-2.9%, -0.9%] 2
All ❌✅ (primary) 2.4% [2.2%, 2.5%] 2

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 471.273s -> 472.483s (0.26%)
Artifact size: 387.92 MiB -> 387.93 MiB (0.00%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Sep 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants