Skip to content

Commit 48db254

Browse files
committed
fix if scopes and shortened function bodies
1 parent d275361 commit 48db254

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/dscanner/analysis/base.d

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)