@@ -4,7 +4,9 @@ use ide_db::defs::{Definition, NameRefClass};
4
4
use std:: ops:: RangeInclusive ;
5
5
use syntax:: {
6
6
SyntaxElement , SyntaxKind , SyntaxNode , T , TextSize ,
7
- ast:: { self , AstNode , HasAttrs , HasGenericParams , HasVisibility } ,
7
+ ast:: {
8
+ self , AstNode , HasAttrs , HasGenericParams , HasVisibility , syntax_factory:: SyntaxFactory ,
9
+ } ,
8
10
match_ast,
9
11
syntax_editor:: { Element , Position , SyntaxEditor } ,
10
12
} ;
@@ -105,7 +107,8 @@ fn edit_struct_def(
105
107
) ;
106
108
ast:: RecordField :: cast ( field_editor. finish ( ) . new_root ( ) . clone ( ) )
107
109
} ) ;
108
- let record_fields = ast:: make:: record_field_list ( record_fields) . clone_for_update ( ) ;
110
+ let make = SyntaxFactory :: without_mappings ( ) ;
111
+ let record_fields = make. record_field_list ( record_fields) ;
109
112
let tuple_fields_before = Position :: before ( tuple_fields. syntax ( ) ) ;
110
113
111
114
if let Either :: Left ( strukt) = strukt {
@@ -145,10 +148,11 @@ fn edit_struct_references(
145
148
let usages = strukt_def. usages ( & ctx. sema ) . include_self_refs ( ) . all ( ) ;
146
149
147
150
let edit_node = |node : SyntaxNode | -> Option < SyntaxNode > {
151
+ let make = SyntaxFactory :: without_mappings ( ) ;
148
152
match_ast ! {
149
153
match node {
150
154
ast:: TupleStructPat ( tuple_struct_pat) => {
151
- Some ( ast :: make:: record_pat_with_fields(
155
+ Some ( make. record_pat_with_fields(
152
156
tuple_struct_pat. path( ) ?,
153
157
ast:: make:: record_pat_field_list( tuple_struct_pat. fields( ) . zip( names) . map(
154
158
|( pat, name) | {
@@ -158,7 +162,7 @@ fn edit_struct_references(
158
162
)
159
163
} ,
160
164
) , None ) ,
161
- ) . syntax( ) . clone_for_update ( ) )
165
+ ) . syntax( ) . clone ( ) )
162
166
} ,
163
167
// for tuple struct creations like Foo(42)
164
168
ast:: CallExpr ( call_expr) => {
@@ -174,9 +178,8 @@ fn edit_struct_references(
174
178
}
175
179
176
180
let arg_list = call_expr. syntax( ) . descendants( ) . find_map( ast:: ArgList :: cast) ?;
177
-
178
181
Some (
179
- ast :: make:: record_expr(
182
+ make. record_expr(
180
183
path,
181
184
ast:: make:: record_expr_field_list( arg_list. args( ) . zip( names) . map(
182
185
|( expr, name) | {
@@ -186,7 +189,7 @@ fn edit_struct_references(
186
189
)
187
190
} ,
188
191
) ) ,
189
- ) . syntax( ) . clone_for_update ( )
192
+ ) . syntax( ) . clone ( )
190
193
)
191
194
} ,
192
195
_ => return None ,
@@ -271,11 +274,12 @@ fn edit_field_references(
271
274
}
272
275
273
276
fn generate_names ( fields : impl Iterator < Item = ast:: TupleField > ) -> Vec < ast:: Name > {
277
+ let make = SyntaxFactory :: without_mappings ( ) ;
274
278
fields
275
279
. enumerate ( )
276
280
. map ( |( i, _) | {
277
281
let idx = i + 1 ;
278
- ast :: make:: name ( & format ! ( "field{idx}" ) ) . clone_for_update ( )
282
+ make. name ( & format ! ( "field{idx}" ) )
279
283
} )
280
284
. collect ( )
281
285
}
0 commit comments