@@ -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
@@ -1019,7 +1027,7 @@ pub fn noop_visit_item_kind<T: MutVisitor>(kind: &mut ItemKind, vis: &mut T) {
1019
1027
}
1020
1028
}
1021
1029
ItemKind :: ForeignMod ( nm) => vis. visit_foreign_mod ( nm) ,
1022
- ItemKind :: GlobalAsm ( asm) => noop_visit_inline_asm ( asm, vis ) ,
1030
+ ItemKind :: GlobalAsm ( asm) => vis . visit_inline_asm ( asm) ,
1023
1031
ItemKind :: TyAlias ( box TyAlias {
1024
1032
defaultness, generics, where_clauses, bounds, ty, ..
1025
1033
} ) => {
@@ -1237,25 +1245,34 @@ pub fn noop_visit_anon_const<T: MutVisitor>(AnonConst { id, value }: &mut AnonCo
1237
1245
vis. visit_expr ( value) ;
1238
1246
}
1239
1247
1240
- fn noop_visit_inline_asm < T : MutVisitor > ( asm : & mut InlineAsm , vis : & mut T ) {
1248
+ pub fn noop_visit_inline_asm < T : MutVisitor > ( asm : & mut InlineAsm , vis : & mut T ) {
1241
1249
for ( op, _) in & mut asm. operands {
1242
1250
match op {
1243
1251
InlineAsmOperand :: In { expr, .. }
1244
1252
| InlineAsmOperand :: Out { expr : Some ( expr) , .. }
1245
- | InlineAsmOperand :: InOut { expr, .. }
1246
- | InlineAsmOperand :: Sym { expr, .. } => vis. visit_expr ( expr) ,
1253
+ | InlineAsmOperand :: InOut { expr, .. } => vis. visit_expr ( expr) ,
1247
1254
InlineAsmOperand :: Out { expr : None , .. } => { }
1248
1255
InlineAsmOperand :: SplitInOut { in_expr, out_expr, .. } => {
1249
1256
vis. visit_expr ( in_expr) ;
1250
1257
if let Some ( out_expr) = out_expr {
1251
1258
vis. visit_expr ( out_expr) ;
1252
1259
}
1253
1260
}
1254
- InlineAsmOperand :: Const { anon_const, .. } => vis. visit_anon_const ( anon_const) ,
1261
+ InlineAsmOperand :: Const { anon_const } => vis. visit_anon_const ( anon_const) ,
1262
+ InlineAsmOperand :: Sym { sym } => vis. visit_inline_asm_sym ( sym) ,
1255
1263
}
1256
1264
}
1257
1265
}
1258
1266
1267
+ pub fn noop_visit_inline_asm_sym < T : MutVisitor > (
1268
+ InlineAsmSym { id, qself, path } : & mut InlineAsmSym ,
1269
+ vis : & mut T ,
1270
+ ) {
1271
+ vis. visit_id ( id) ;
1272
+ vis. visit_qself ( qself) ;
1273
+ vis. visit_path ( path) ;
1274
+ }
1275
+
1259
1276
pub fn noop_visit_expr < T : MutVisitor > (
1260
1277
Expr { kind, id, span, attrs, tokens } : & mut Expr ,
1261
1278
vis : & mut T ,
@@ -1374,7 +1391,7 @@ pub fn noop_visit_expr<T: MutVisitor>(
1374
1391
ExprKind :: Ret ( expr) => {
1375
1392
visit_opt ( expr, |expr| vis. visit_expr ( expr) ) ;
1376
1393
}
1377
- ExprKind :: InlineAsm ( asm) => noop_visit_inline_asm ( asm, vis ) ,
1394
+ ExprKind :: InlineAsm ( asm) => vis . visit_inline_asm ( asm) ,
1378
1395
ExprKind :: MacCall ( mac) => vis. visit_mac_call ( mac) ,
1379
1396
ExprKind :: Struct ( se) => {
1380
1397
let StructExpr { qself, path, fields, rest } = se. deref_mut ( ) ;
0 commit comments