From d9b6828205e55e9f602017858dc05ec09ba25493 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Mon, 16 Jan 2017 17:07:14 +0100 Subject: [PATCH] fix false warning on top level struct/union --- src/analysis/final_attribute.d | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/analysis/final_attribute.d b/src/analysis/final_attribute.d index 551f223..bb225ab 100644 --- a/src/analysis/final_attribute.d +++ b/src/analysis/final_attribute.d @@ -159,7 +159,7 @@ public: if (d.classDeclaration || d.structDeclaration || d.unionDeclaration) { _finalAggregate = isFinal; - if (savedParent == Parent.module_) + if (_finalAggregate && savedParent == Parent.module_) { if (d.structDeclaration) addError(d.structDeclaration, MESSAGE.struct_i); @@ -224,6 +224,14 @@ public: void foo(){void foo(){}} }, sac); + assertAnalyzerWarnings(q{ + struct S{} + }, sac); + + assertAnalyzerWarnings(q{ + union U{} + }, sac); + assertAnalyzerWarnings(q{ class Foo{public final void foo(){}} }, sac);