From c13330971d08fbab855ad51ff691979012af8b82 Mon Sep 17 00:00:00 2001 From: HoLLy Date: Sun, 31 Dec 2023 12:51:43 +0100 Subject: [PATCH] Fix out-of-bounds panic in some macros due to unhandled self_ref --- crates/hir-expand/src/hygiene.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/hir-expand/src/hygiene.rs b/crates/hir-expand/src/hygiene.rs index 1c84103c7f66..6f3b19c56867 100644 --- a/crates/hir-expand/src/hygiene.rs +++ b/crates/hir-expand/src/hygiene.rs @@ -153,7 +153,7 @@ fn apply_mark_internal( let mut opaque_and_semitransparent = syntax_context_data.opaque_and_semitransparent; if transparency >= Transparency::Opaque { - let parent = opaque; + let parent = handle_self_ref(ctxt, opaque); let new_opaque = SyntaxContextId::SELF_REF; // But we can't just grab the to be allocated ID either as that would not deduplicate // things! @@ -168,7 +168,7 @@ fn apply_mark_internal( } if transparency >= Transparency::SemiTransparent { - let parent = opaque_and_semitransparent; + let parent = handle_self_ref(ctxt, opaque_and_semitransparent); let new_opaque_and_semitransparent = SyntaxContextId::SELF_REF; opaque_and_semitransparent = db.intern_syntax_context(SyntaxContextData { outer_expn: call_id,