From ebed3259643cdcdcb70f9e0c26fdf33f9847ecff Mon Sep 17 00:00:00 2001 From: Axel Ricard Date: Thu, 12 Oct 2023 21:49:13 +0200 Subject: [PATCH] UDA to disable linting: can now disable at module level --- src/dscanner/analysis/base.d | 16 ++++++++++------ src/dscanner/analysis/style.d | 5 ----- src/dscanner/analysis/useless_initializer.d | 12 ++++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/dscanner/analysis/base.d b/src/dscanner/analysis/base.d index 7187e83..9e9cdeb 100644 --- a/src/dscanner/analysis/base.d +++ b/src/dscanner/analysis/base.d @@ -411,13 +411,17 @@ public: * * When overriden, make sure to keep this structure */ - override void visit(const(ModuleDeclaration) moduleDeclaration) + override void visit(const(Module) mod) { - auto currNoLint = NoLintFactory.fromModuleDeclaration(moduleDeclaration); - noLint.push(currNoLint); - scope(exit) noLint.pop(currNoLint); - - moduleDeclaration.accept(this); + if(mod.moduleDeclaration !is null) + { + auto currNoLint = NoLintFactory.fromModuleDeclaration(mod.moduleDeclaration); + noLint.push(currNoLint); + scope(exit) noLint.pop(currNoLint); + mod.accept(this); + } + else + mod.accept(this); } /** diff --git a/src/dscanner/analysis/style.d b/src/dscanner/analysis/style.d index f9fa373..a80ca70 100644 --- a/src/dscanner/analysis/style.d +++ b/src/dscanner/analysis/style.d @@ -237,10 +237,5 @@ unittest ^^^^^^^^^^^^^^ [warn]: Function name 'WinButWithBody' does not match style guidelines. +/ }c, sac); - assertAnalyzerWarnings(q{ - @("nolint(dscanner.style.phobos_naming_convention)") - module AMODULE; - }c, sac); - stderr.writeln("Unittest for StyleChecker passed."); } diff --git a/src/dscanner/analysis/useless_initializer.d b/src/dscanner/analysis/useless_initializer.d index fb75837..68a4fbf 100644 --- a/src/dscanner/analysis/useless_initializer.d +++ b/src/dscanner/analysis/useless_initializer.d @@ -395,6 +395,18 @@ public: }, sac); + // passes (disable check at module level) + assertAnalyzerWarnings(q{ + @("nolint(dscanner.useless-initializer)") + module my_module; + + int a = 0; + + int f() { + int a = 0; + } + }, sac); + stderr.writeln("Unittest for UselessInitializerChecker passed."); }