From 3b590c377a4cf0027c4c6e813c20db68a8b64570 Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Thu, 6 Aug 2020 15:11:04 -0700 Subject: [PATCH] Fix #815 --- src/dscanner/analysis/vcall_in_ctor.d | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/dscanner/analysis/vcall_in_ctor.d b/src/dscanner/analysis/vcall_in_ctor.d index 820b4de..8ab5412 100644 --- a/src/dscanner/analysis/vcall_in_ctor.d +++ b/src/dscanner/analysis/vcall_in_ctor.d @@ -162,6 +162,18 @@ public: popNestedFunc(); } + override void visit(const(StructDeclaration) decl) + { + pushVirtual(false); + pushInClass(false); + pushNestedFunc(false); + decl.accept(this); + check(); + popVirtual(); + popInClass(); + popNestedFunc(); + } + override void visit(const(Constructor) ctor) { pushInCtor(isInClass); @@ -404,6 +416,18 @@ unittest } }, sac); + assertAnalyzerWarnings(q{ + class C { + static struct S { + public: + this(int) { + foo(); + } + void foo() {} + } + } + }, sac); + import std.stdio: writeln; writeln("Unittest for VcallCtorChecker passed"); }