about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-08-25 09:00:12 +0200
committerGitHub <noreply@github.com>2023-08-25 09:00:12 +0200
commit49cdf06b4a56582ba4ad93fbc9eaeef3a73c893c (patch)
tree5b9ec3d27bfafcb2e8d97c6c6449b49b46e46bdf
parentb88849d77c252a75ffa68b7c1a9aa8240935812a (diff)
parent6101ddd793daf8bea541073c2d9462e252e81cec (diff)
downloadrust-49cdf06b4a56582ba4ad93fbc9eaeef3a73c893c.tar.gz
rust-49cdf06b4a56582ba4ad93fbc9eaeef3a73c893c.zip
Rollup merge of #115081 - Zoxc:expn-id-decode, r=cjgillot
Allow overwriting ExpnId for concurrent decoding

These assertions only hold for the single threaded compiler. They were triggered in https://github.com/rust-lang/rust/pull/115003.
-rw-r--r--compiler/rustc_span/src/hygiene.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/rustc_span/src/hygiene.rs b/compiler/rustc_span/src/hygiene.rs
index ab57d5c6803..88081700c3b 100644
--- a/compiler/rustc_span/src/hygiene.rs
+++ b/compiler/rustc_span/src/hygiene.rs
@@ -1291,11 +1291,11 @@ pub fn register_expn_id(
     let expn_id = ExpnId { krate, local_id };
     HygieneData::with(|hygiene_data| {
         let _old_data = hygiene_data.foreign_expn_data.insert(expn_id, data);
-        debug_assert!(_old_data.is_none());
+        debug_assert!(_old_data.is_none() || cfg!(parallel_compiler));
         let _old_hash = hygiene_data.foreign_expn_hashes.insert(expn_id, hash);
-        debug_assert!(_old_hash.is_none());
+        debug_assert!(_old_hash.is_none() || _old_hash == Some(hash));
         let _old_id = hygiene_data.expn_hash_to_expn_id.insert(hash, expn_id);
-        debug_assert!(_old_id.is_none());
+        debug_assert!(_old_id.is_none() || _old_id == Some(expn_id));
     });
     expn_id
 }