@@ -525,12 +525,14 @@ public:
525525 mixin ScopedVisit! BlockStatement;
526526 mixin ScopedVisit! ForeachStatement;
527527 mixin ScopedVisit! ForStatement;
528- mixin ScopedVisit! IfStatement;
529528 mixin ScopedVisit! Module;
530529 mixin ScopedVisit! StructBody;
531530 mixin ScopedVisit! TemplateDeclaration;
532531 mixin ScopedVisit! WithStatement;
533532 mixin ScopedVisit! WhileStatement;
533+ mixin ScopedVisit! DoStatement;
534+ // mixin ScopedVisit!SpecifiedFunctionBody; // covered by BlockStatement
535+ mixin ScopedVisit! ShortenedFunctionBody;
534536
535537 override void visit (const SwitchStatement switchStatement)
536538 {
@@ -540,6 +542,23 @@ public:
540542 switchStatement.accept(this );
541543 }
542544
545+ override void visit (const IfStatement ifStatement)
546+ {
547+ pushScopeImpl();
548+ if (ifStatement.condition)
549+ ifStatement.condition.accept(this );
550+ if (ifStatement.thenStatement)
551+ ifStatement.thenStatement.accept(this );
552+ popScopeImpl();
553+
554+ if (ifStatement.elseStatement)
555+ {
556+ pushScopeImpl();
557+ ifStatement.elseStatement.accept(this );
558+ popScopeImpl();
559+ }
560+ }
561+
543562 static foreach (T; AliasSeq! (CaseStatement, DefaultStatement, CaseRangeStatement))
544563 override void visit (const T stmt)
545564 {
0 commit comments