about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <me@lukaswirth.dev>2025-08-14 21:27:42 +0000
committerGitHub <noreply@github.com>2025-08-14 21:27:42 +0000
commit0dbacbc957c5c10ff4bd4976a44c40ca4c5362a3 (patch)
tree81eba9674afadd52966c8607d5fc48a5779b92b6
parent50690b16468c1f902b64d37b492643c1c6b5d3c1 (diff)
parent8e5818df2eb7d77f3cbed5cbf0c292e8a770d760 (diff)
downloadrust-0dbacbc957c5c10ff4bd4976a44c40ca4c5362a3.tar.gz
rust-0dbacbc957c5c10ff4bd4976a44c40ca4c5362a3.zip
Merge pull request #20453 from jackh726/nts-part2
Fix webrender-2022 metrics - shift vars when mapping dyn
-rw-r--r--src/tools/rust-analyzer/crates/hir-ty/src/next_solver/mapping.rs3
-rw-r--r--src/tools/rust-analyzer/xtask/src/metrics.rs8
2 files changed, 9 insertions, 2 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-ty/src/next_solver/mapping.rs b/src/tools/rust-analyzer/crates/hir-ty/src/next_solver/mapping.rs
index 3a3206bef38..4696cf479c1 100644
--- a/src/tools/rust-analyzer/crates/hir-ty/src/next_solver/mapping.rs
+++ b/src/tools/rust-analyzer/crates/hir-ty/src/next_solver/mapping.rs
@@ -1147,6 +1147,9 @@ pub(crate) fn convert_ty_for_result<'db>(interner: DbInterner<'db>, ty: Ty<'db>)
                             }
                         }),
                     );
+
+                    let p = shift_vars(interner, p, 1);
+
                     let where_clause = match p.skip_binder() {
                         rustc_type_ir::ExistentialPredicate::Trait(trait_ref) => {
                             let trait_ref = TraitRef::new(
diff --git a/src/tools/rust-analyzer/xtask/src/metrics.rs b/src/tools/rust-analyzer/xtask/src/metrics.rs
index c9eea871060..fd4b600b034 100644
--- a/src/tools/rust-analyzer/xtask/src/metrics.rs
+++ b/src/tools/rust-analyzer/xtask/src/metrics.rs
@@ -160,7 +160,7 @@ struct Host {
 
 impl Metrics {
     fn new(sh: &Shell) -> anyhow::Result<Metrics> {
-        let host = Host::new(sh)?;
+        let host = Host::new(sh).unwrap_or_else(|_| Host::unknown());
         let timestamp = SystemTime::now();
         let revision = cmd!(sh, "git rev-parse HEAD").read()?;
         let perf_revision = "a584462e145a0c04760fd9391daefb4f6bd13a99".into();
@@ -191,9 +191,13 @@ impl Metrics {
 }
 
 impl Host {
+    fn unknown() -> Host {
+        Host { os: "unknown".into(), cpu: "unknown".into(), mem: "unknown".into() }
+    }
+
     fn new(sh: &Shell) -> anyhow::Result<Host> {
         if cfg!(not(target_os = "linux")) {
-            return Ok(Host { os: "unknown".into(), cpu: "unknown".into(), mem: "unknown".into() });
+            return Ok(Host::unknown());
         }
 
         let os = read_field(sh, "/etc/os-release", "PRETTY_NAME=")?.trim_matches('"').to_owned();