@@ -280,6 +280,14 @@ pub trait MutVisitor: Sized {
280
280
fn flat_map_pat_field ( & mut self , fp : PatField ) -> SmallVec < [ PatField ; 1 ] > {
281
281
noop_flat_map_pat_field ( fp, self )
282
282
}
283
+
284
+ fn visit_inline_asm ( & mut self , asm : & mut InlineAsm ) {
285
+ noop_visit_inline_asm ( asm, self )
286
+ }
287
+
288
+ fn visit_inline_asm_sym ( & mut self , sym : & mut InlineAsmSym ) {
289
+ noop_visit_inline_asm_sym ( sym, self )
290
+ }
283
291
}
284
292
285
293
/// Use a map-style function (`FnOnce(T) -> T`) to overwrite a `&mut T`. Useful
@@ -1017,7 +1025,7 @@ pub fn noop_visit_item_kind<T: MutVisitor>(kind: &mut ItemKind, vis: &mut T) {
1017
1025
}
1018
1026
}
1019
1027
ItemKind :: ForeignMod ( nm) => vis. visit_foreign_mod ( nm) ,
1020
- ItemKind :: GlobalAsm ( asm) => noop_visit_inline_asm ( asm, vis ) ,
1028
+ ItemKind :: GlobalAsm ( asm) => vis . visit_inline_asm ( asm) ,
1021
1029
ItemKind :: TyAlias ( box TyAlias {
1022
1030
defaultness, generics, where_clauses, bounds, ty, ..
1023
1031
} ) => {
@@ -1235,25 +1243,34 @@ pub fn noop_visit_anon_const<T: MutVisitor>(AnonConst { id, value }: &mut AnonCo
1235
1243
vis. visit_expr ( value) ;
1236
1244
}
1237
1245
1238
- fn noop_visit_inline_asm < T : MutVisitor > ( asm : & mut InlineAsm , vis : & mut T ) {
1246
+ pub fn noop_visit_inline_asm < T : MutVisitor > ( asm : & mut InlineAsm , vis : & mut T ) {
1239
1247
for ( op, _) in & mut asm. operands {
1240
1248
match op {
1241
1249
InlineAsmOperand :: In { expr, .. }
1242
1250
| InlineAsmOperand :: Out { expr : Some ( expr) , .. }
1243
- | InlineAsmOperand :: InOut { expr, .. }
1244
- | InlineAsmOperand :: Sym { expr, .. } => vis. visit_expr ( expr) ,
1251
+ | InlineAsmOperand :: InOut { expr, .. } => vis. visit_expr ( expr) ,
1245
1252
InlineAsmOperand :: Out { expr : None , .. } => { }
1246
1253
InlineAsmOperand :: SplitInOut { in_expr, out_expr, .. } => {
1247
1254
vis. visit_expr ( in_expr) ;
1248
1255
if let Some ( out_expr) = out_expr {
1249
1256
vis. visit_expr ( out_expr) ;
1250
1257
}
1251
1258
}
1252
- InlineAsmOperand :: Const { anon_const, .. } => vis. visit_anon_const ( anon_const) ,
1259
+ InlineAsmOperand :: Const { anon_const } => vis. visit_anon_const ( anon_const) ,
1260
+ InlineAsmOperand :: Sym { sym } => vis. visit_inline_asm_sym ( sym) ,
1253
1261
}
1254
1262
}
1255
1263
}
1256
1264
1265
+ pub fn noop_visit_inline_asm_sym < T : MutVisitor > (
1266
+ InlineAsmSym { id, qself, path } : & mut InlineAsmSym ,
1267
+ vis : & mut T ,
1268
+ ) {
1269
+ vis. visit_id ( id) ;
1270
+ vis. visit_qself ( qself) ;
1271
+ vis. visit_path ( path) ;
1272
+ }
1273
+
1257
1274
pub fn noop_visit_expr < T : MutVisitor > (
1258
1275
Expr { kind, id, span, attrs, tokens } : & mut Expr ,
1259
1276
vis : & mut T ,
@@ -1372,7 +1389,7 @@ pub fn noop_visit_expr<T: MutVisitor>(
1372
1389
ExprKind :: Ret ( expr) => {
1373
1390
visit_opt ( expr, |expr| vis. visit_expr ( expr) ) ;
1374
1391
}
1375
- ExprKind :: InlineAsm ( asm) => noop_visit_inline_asm ( asm, vis ) ,
1392
+ ExprKind :: InlineAsm ( asm) => vis . visit_inline_asm ( asm) ,
1376
1393
ExprKind :: MacCall ( mac) => vis. visit_mac_call ( mac) ,
1377
1394
ExprKind :: Struct ( se) => {
1378
1395
let StructExpr { qself, path, fields, rest } = se. deref_mut ( ) ;
0 commit comments