Add take() method to SyntaxEditor

This commit is contained in:
Shoyu Vanilla 2025-02-18 23:58:18 +09:00
parent bf0c3944f8
commit a0b9931832
3 changed files with 20 additions and 25 deletions

View file

@ -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())
}

View file

@ -331,7 +331,7 @@ impl SyntaxFactory {
}
pub fn expr_paren(&self, expr: ast::Expr) -> ast::ParenExpr {
// FIXME: `make::expr_paren` should return a `MethodCallExpr`, not just an `Expr`
// FIXME: `make::expr_paren` should return a `ParenExpr`, not just an `Expr`
let ast::Expr::ParenExpr(ast) = make::expr_paren(expr.clone()).clone_for_update() else {
unreachable!()
};