Unnamed repository; edit this file 'description' to name the repository.
add mapping to where_clause syntax_factory constructor method
bit-aloo 2 months ago
parent 12f034a · commit 9ba3f27
-rw-r--r--crates/syntax/src/ast/syntax_factory/constructors.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/syntax/src/ast/syntax_factory/constructors.rs b/crates/syntax/src/ast/syntax_factory/constructors.rs
index fdf5eb5f51..241148d900 100644
--- a/crates/syntax/src/ast/syntax_factory/constructors.rs
+++ b/crates/syntax/src/ast/syntax_factory/constructors.rs
@@ -258,7 +258,16 @@ impl SyntaxFactory {
&self,
predicates: impl IntoIterator<Item = ast::WherePred>,
) -> ast::WhereClause {
- make::where_clause(predicates).clone_for_update()
+ let (predicates, input) = iterator_input(predicates);
+ let ast = make::where_clause(predicates).clone_for_update();
+
+ if let Some(mut mapping) = self.mappings() {
+ let mut builder = SyntaxMappingBuilder::new(ast.syntax().clone());
+ builder.map_children(input, ast.predicates().map(|p| p.syntax().clone()));
+ builder.finish(&mut mapping);
+ }
+
+ ast
}
pub fn impl_trait_type(&self, bounds: ast::TypeBoundList) -> ast::ImplTraitType {