Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/span/src/map.rs')
-rw-r--r--crates/span/src/map.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/crates/span/src/map.rs b/crates/span/src/map.rs
index 1f396a1e97..81fc56c961 100644
--- a/crates/span/src/map.rs
+++ b/crates/span/src/map.rs
@@ -4,17 +4,20 @@
use std::{fmt, hash::Hash};
use stdx::{always, itertools::Itertools};
-use syntax::{TextRange, TextSize};
use vfs::FileId;
use crate::{
- ErasedFileAstId, Span, SpanAnchor, SpanData, SyntaxContextId, ROOT_ERASED_FILE_AST_ID,
+ ErasedFileAstId, Span, SpanAnchor, SpanData, SyntaxContextId, TextRange, TextSize,
+ ROOT_ERASED_FILE_AST_ID,
};
/// Maps absolute text ranges for the corresponding file to the relevant span data.
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
pub struct SpanMap<S> {
spans: Vec<(TextSize, SpanData<S>)>,
+ /// Index of the matched macro arm on successful expansion for declarative macros.
+ // FIXME: Does it make sense to have this here?
+ pub matched_arm: Option<u32>,
}
impl<S> SpanMap<S>
@@ -23,7 +26,7 @@ where
{
/// Creates a new empty [`SpanMap`].
pub fn empty() -> Self {
- Self { spans: Vec::new() }
+ Self { spans: Vec::new(), matched_arm: None }
}
/// Finalizes the [`SpanMap`], shrinking its backing storage and validating that the offsets are