From 596135f596d2e6f4bb8b9f427a2da9b99c9c3ab0 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Tue, 13 Jun 2017 07:28:06 +0200 Subject: [PATCH] fix 454 - Ddoc for unions are not detected --- dub.json | 2 +- libdparse | 2 +- src/analysis/undocumented.d | 41 +++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/dub.json b/dub.json index 4ad6f8c..852447e 100644 --- a/dub.json +++ b/dub.json @@ -10,7 +10,7 @@ "StdLoggerDisableWarning" ], "dependencies": { - "libdparse": "~>0.7.1-beta.2", + "libdparse": "~>0.7.1-beta.4", "dsymbol": "~>0.2.0", "inifiled": ">=0.0.6", "emsi_containers": "~>0.5.3", diff --git a/libdparse b/libdparse index e115106..5e81535 160000 --- a/libdparse +++ b/libdparse @@ -1 +1 @@ -Subproject commit e115106395937d88947a9d7866025ff8cc93cbff +Subproject commit 5e81535d0aff4ceec2cbf03f5b02a31ae6d3fec2 diff --git a/src/analysis/undocumented.d b/src/analysis/undocumented.d index 6b901df..6bde256 100644 --- a/src/analysis/undocumented.d +++ b/src/analysis/undocumented.d @@ -294,3 +294,44 @@ private immutable string[] ignoredFunctionNames = [ ]; private enum getSetRe = ctRegex!`^(?:get|set)(?:\p{Lu}|_).*`; + +unittest +{ + import std.stdio : stderr; + import std.format : format; + import analysis.config : StaticAnalysisConfig, Check, disabledConfig; + import analysis.helpers : assertAnalyzerWarnings; + + StaticAnalysisConfig sac = disabledConfig(); + sac.undocumented_declaration_check = Check.enabled; + + assertAnalyzerWarnings(q{ + class C{} // [warn]: Public declaration 'C' is undocumented. + interface I{} // [warn]: Public declaration 'I' is undocumented. + enum e = 0; // [warn]: Public declaration 'e' is undocumented. + void f(){} // [warn]: Public declaration 'f' is undocumented. + struct S{} // [warn]: Public declaration 'S' is undocumented. + template T(){} // [warn]: Public declaration 'T' is undocumented. + union U{} // [warn]: Public declaration 'U' is undocumented. + }, sac); + + assertAnalyzerWarnings(q{ + /// C + class C{} + /// I + interface I{} + /// e + enum e = 0; + /// f + void f(){} + /// S + struct S{} + /// T + template T(){} + /// U + union U{} + }, sac); + + stderr.writeln("Unittest for UndocumentedDeclarationCheck passed."); +} +