@@ -117,7 +117,9 @@ pub fn walk_item<'a>(vis: &mut impl Visitor<'a>, item: &'a Item) {
117117 ItemKind :: Callable ( decl) => vis. visit_callable_decl ( decl) ,
118118 ItemKind :: Open ( ns, alias) => {
119119 vis. visit_path_kind ( ns) ;
120- alias. iter ( ) . for_each ( |a| vis. visit_ident ( a) ) ;
120+ if let Some ( a) = alias. as_ref ( ) {
121+ vis. visit_ident ( a) ;
122+ }
121123 }
122124 ItemKind :: Ty ( ident, def) => {
123125 vis. visit_ident ( ident) ;
@@ -139,7 +141,9 @@ pub fn walk_attr<'a>(vis: &mut impl Visitor<'a>, attr: &'a Attr) {
139141pub fn walk_ty_def < ' a > ( vis : & mut impl Visitor < ' a > , def : & ' a TyDef ) {
140142 match & * def. kind {
141143 TyDefKind :: Field ( name, ty) => {
142- name. iter ( ) . for_each ( |n| vis. visit_ident ( n) ) ;
144+ if let Some ( n) = name. as_ref ( ) {
145+ vis. visit_ident ( n) ;
146+ }
143147 vis. visit_ty ( ty) ;
144148 }
145149 TyDefKind :: Paren ( def) => vis. visit_ty_def ( def) ,
@@ -217,7 +221,9 @@ pub fn walk_ty<'a>(vis: &mut impl Visitor<'a>, ty: &'a Ty) {
217221 TyKind :: Arrow ( _, lhs, rhs, functors) => {
218222 vis. visit_ty ( lhs) ;
219223 vis. visit_ty ( rhs) ;
220- functors. iter ( ) . for_each ( |f| vis. visit_functor_expr ( f) ) ;
224+ if let Some ( f) = functors. as_ref ( ) {
225+ vis. visit_functor_expr ( f) ;
226+ }
221227 }
222228 TyKind :: Hole | TyKind :: Err => { }
223229 TyKind :: Paren ( ty) => vis. visit_ty ( ty) ,
@@ -258,11 +264,14 @@ pub fn walk_stmt<'a>(vis: &mut impl Visitor<'a>, stmt: &'a Stmt) {
258264 StmtKind :: Qubit ( _, pat, init, block) => {
259265 vis. visit_pat ( pat) ;
260266 vis. visit_qubit_init ( init) ;
261- block. iter ( ) . for_each ( |b| vis. visit_block ( b) ) ;
267+ if let Some ( b) = block. as_ref ( ) {
268+ vis. visit_block ( b) ;
269+ }
262270 }
263271 }
264272}
265273
274+ #[ allow( clippy:: too_many_lines) ]
266275pub fn walk_expr < ' a > ( vis : & mut impl Visitor < ' a > , expr : & ' a Expr ) {
267276 match & * expr. kind {
268277 ExprKind :: Array ( exprs) => exprs. iter ( ) . for_each ( |e| vis. visit_expr ( e) ) ,
@@ -305,7 +314,9 @@ pub fn walk_expr<'a>(vis: &mut impl Visitor<'a>, expr: &'a Expr) {
305314 ExprKind :: If ( cond, body, otherwise) => {
306315 vis. visit_expr ( cond) ;
307316 vis. visit_block ( body) ;
308- otherwise. iter ( ) . for_each ( |e| vis. visit_expr ( e) ) ;
317+ if let Some ( e) = otherwise. as_ref ( ) {
318+ vis. visit_expr ( e) ;
319+ }
309320 }
310321 ExprKind :: Index ( array, index) => {
311322 vis. visit_expr ( array) ;
@@ -328,18 +339,28 @@ pub fn walk_expr<'a>(vis: &mut impl Visitor<'a>, expr: &'a Expr) {
328339 }
329340 ExprKind :: Path ( path) => vis. visit_path_kind ( path) ,
330341 ExprKind :: Range ( start, step, end) => {
331- start. iter ( ) . for_each ( |s| vis. visit_expr ( s) ) ;
332- step. iter ( ) . for_each ( |s| vis. visit_expr ( s) ) ;
333- end. iter ( ) . for_each ( |e| vis. visit_expr ( e) ) ;
342+ if let Some ( s) = start. as_ref ( ) {
343+ vis. visit_expr ( s) ;
344+ }
345+ if let Some ( s) = step. as_ref ( ) {
346+ vis. visit_expr ( s) ;
347+ }
348+ if let Some ( e) = end. as_ref ( ) {
349+ vis. visit_expr ( e) ;
350+ }
334351 }
335352 ExprKind :: Repeat ( body, until, fixup) => {
336353 vis. visit_block ( body) ;
337354 vis. visit_expr ( until) ;
338- fixup. iter ( ) . for_each ( |f| vis. visit_block ( f) ) ;
355+ if let Some ( f) = fixup. as_ref ( ) {
356+ vis. visit_block ( f) ;
357+ }
339358 }
340359 ExprKind :: Struct ( name, copy, fields) => {
341360 vis. visit_path_kind ( name) ;
342- copy. iter ( ) . for_each ( |c| vis. visit_expr ( c) ) ;
361+ if let Some ( c) = copy. as_ref ( ) {
362+ vis. visit_expr ( c) ;
363+ }
343364 fields. iter ( ) . for_each ( |f| vis. visit_field_assign ( f) ) ;
344365 }
345366 ExprKind :: TernOp ( _, e1, e2, e3) => {
@@ -365,7 +386,9 @@ pub fn walk_pat<'a>(vis: &mut impl Visitor<'a>, pat: &'a Pat) {
365386 match & * pat. kind {
366387 PatKind :: Bind ( name, ty) => {
367388 vis. visit_ident ( name) ;
368- ty. iter ( ) . for_each ( |t| vis. visit_ty ( t) ) ;
389+ if let Some ( t) = ty. as_ref ( ) {
390+ vis. visit_ty ( t) ;
391+ }
369392 }
370393 PatKind :: Discard ( ty) => ty. iter ( ) . for_each ( |t| vis. visit_ty ( t) ) ,
371394 PatKind :: Elided | PatKind :: Err => { }
@@ -401,5 +424,7 @@ pub fn walk_path_kind<'a>(vis: &mut impl Visitor<'a>, path: &'a PathKind) {
401424}
402425
403426pub fn walk_idents < ' a > ( vis : & mut impl Visitor < ' a > , idents : & ' a [ Ident ] ) {
404- idents. iter ( ) . for_each ( |i| vis. visit_ident ( i) ) ;
427+ for i in idents {
428+ vis. visit_ident ( i) ;
429+ }
405430}
0 commit comments