Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/ast/syntax_factory.rs')
-rw-r--r--crates/syntax/src/ast/syntax_factory.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/crates/syntax/src/ast/syntax_factory.rs b/crates/syntax/src/ast/syntax_factory.rs
index 73bbe49105..1c517ac2c7 100644
--- a/crates/syntax/src/ast/syntax_factory.rs
+++ b/crates/syntax/src/ast/syntax_factory.rs
@@ -33,6 +33,11 @@ impl SyntaxFactory {
self.mappings.unwrap_or_default().into_inner()
}
+ /// Take all of the tracked syntax mappings, leaving `SyntaxMapping::default()` in its place, if any.
+ pub fn take(&self) -> SyntaxMapping {
+ self.mappings.as_ref().map(|mappings| mappings.take()).unwrap_or_default()
+ }
+
fn mappings(&self) -> Option<RefMut<'_, SyntaxMapping>> {
self.mappings.as_ref().map(|it| it.borrow_mut())
}