Cleanup
This commit is contained in:
parent
b5c9bca463
commit
7b115caf3f
|
@ -38,7 +38,8 @@ class AsmStyleCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.asm_style_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -51,8 +51,6 @@ protected:
|
|||
}
|
||||
}
|
||||
|
||||
import core.vararg;
|
||||
|
||||
void addErrorMessage(size_t line, size_t column, string key, string message)
|
||||
{
|
||||
_messages.insert(Message(fileName, line, column, key, message));
|
||||
|
|
|
@ -91,7 +91,8 @@ private:
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.constructor_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -33,7 +33,8 @@ class DeleteCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.delete_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -156,7 +156,7 @@ class DuplicateAttributeCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
StaticAnalysisConfig sac;
|
||||
sac.duplicate_attribute = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -45,7 +45,8 @@ class FloatOperatorCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.float_operator_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -52,9 +52,8 @@ S after(S)(S value, S separator)
|
|||
*/
|
||||
void assertAnalyzerWarnings(string code, const StaticAnalysisConfig config, string file=__FILE__, size_t line=__LINE__)
|
||||
{
|
||||
import analysis.run;
|
||||
import analysis.run : ParseAllocator, parseModule;
|
||||
import std.d.lexer : StringCache;
|
||||
import std.d.parser;
|
||||
|
||||
StringCache cache = StringCache(StringCache.defaultBucketCount);
|
||||
ParseAllocator p = new ParseAllocator;
|
||||
|
|
|
@ -79,7 +79,8 @@ class IfElseSameCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.if_else_same_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -59,7 +59,8 @@ class LengthSubtractionCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.length_subtraction_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -63,7 +63,8 @@ private:
|
|||
|
||||
unittest
|
||||
{
|
||||
import std.stdio;
|
||||
import std.stdio:stderr;
|
||||
|
||||
LineSpans l;
|
||||
l.addLine(5);
|
||||
foreach (i; 2 .. 9)
|
||||
|
|
|
@ -44,7 +44,8 @@ class LogicPrecedenceCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.logical_precedence_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -91,7 +91,8 @@ class OpEqualsWithoutToHashCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.opequals_tohash_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -84,7 +84,8 @@ class PokemonExceptionCheck : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.exception_check = true;
|
||||
assertAnalyzerWarnings(q{
|
||||
|
|
|
@ -19,8 +19,13 @@ class BackwardsRangeCheck : BaseAnalyzer
|
|||
{
|
||||
alias visit = BaseAnalyzer.visit;
|
||||
|
||||
/// Key for this check in the report output
|
||||
enum string KEY = "dscanner.bugs.backwards_slices";
|
||||
|
||||
/**
|
||||
* Params:
|
||||
* fileName = the name of the file being analyzed
|
||||
*/
|
||||
this(string fileName)
|
||||
{
|
||||
super(fileName);
|
||||
|
@ -30,7 +35,7 @@ class BackwardsRangeCheck : BaseAnalyzer
|
|||
{
|
||||
if (foreachStatement.low !is null && foreachStatement.high !is null)
|
||||
{
|
||||
import std.string;
|
||||
import std.string : format;
|
||||
state = State.left;
|
||||
visit(foreachStatement.low);
|
||||
state = State.right;
|
||||
|
@ -67,7 +72,7 @@ class BackwardsRangeCheck : BaseAnalyzer
|
|||
|
||||
override void visit(const PrimaryExpression primary)
|
||||
{
|
||||
import std.conv;
|
||||
import std.conv : to, ConvException;
|
||||
|
||||
if (state == State.ignore || !isNumberLiteral(primary.primary.type))
|
||||
return;
|
||||
|
@ -99,7 +104,7 @@ class BackwardsRangeCheck : BaseAnalyzer
|
|||
state = State.ignore;
|
||||
if (hasLeft && hasRight && left > right)
|
||||
{
|
||||
import std.string;
|
||||
import std.string : format;
|
||||
string message = format(
|
||||
"%d is larger than %d. This slice is likely incorrect.",
|
||||
left, right);
|
||||
|
|
|
@ -93,7 +93,8 @@ class StyleChecker : BaseAnalyzer
|
|||
|
||||
unittest
|
||||
{
|
||||
import analysis.config;
|
||||
import analysis.config : StaticAnalysisConfig;
|
||||
|
||||
StaticAnalysisConfig sac;
|
||||
sac.style_check = true;
|
||||
|
||||
|
|
|
@ -18,6 +18,10 @@ class UnusedVariableCheck : BaseAnalyzer
|
|||
{
|
||||
alias visit = BaseAnalyzer.visit;
|
||||
|
||||
/**
|
||||
* Params:
|
||||
* fileName = the name of the file being analyzed
|
||||
*/
|
||||
this(string fileName)
|
||||
{
|
||||
super(fileName);
|
||||
|
@ -54,18 +58,6 @@ class UnusedVariableCheck : BaseAnalyzer
|
|||
popScope();
|
||||
}
|
||||
|
||||
// override void visit(const Type type) {}
|
||||
|
||||
mixin template PartsUseVariables(NodeType)
|
||||
{
|
||||
override void visit(const NodeType node)
|
||||
{
|
||||
interestDepth++;
|
||||
node.accept(this);
|
||||
interestDepth--;
|
||||
}
|
||||
}
|
||||
|
||||
mixin PartsUseVariables!AliasInitializer;
|
||||
mixin PartsUseVariables!ArgumentList;
|
||||
mixin PartsUseVariables!AssertExpression;
|
||||
|
@ -327,6 +319,16 @@ class UnusedVariableCheck : BaseAnalyzer
|
|||
|
||||
private:
|
||||
|
||||
mixin template PartsUseVariables(NodeType)
|
||||
{
|
||||
override void visit(const NodeType node)
|
||||
{
|
||||
interestDepth++;
|
||||
node.accept(this);
|
||||
interestDepth--;
|
||||
}
|
||||
}
|
||||
|
||||
void variableDeclared(string name, size_t line, size_t column,
|
||||
bool isParameter, bool isRef)
|
||||
{
|
||||
|
|
|
@ -378,9 +378,9 @@ options:
|
|||
programName);
|
||||
}
|
||||
|
||||
void doNothing(string, size_t, size_t, string, bool) {}
|
||||
private void doNothing(string, size_t, size_t, string, bool) {}
|
||||
|
||||
enum CONFIG_FILE_NAME = "dscanner.ini";
|
||||
private enum CONFIG_FILE_NAME = "dscanner.ini";
|
||||
version(linux) version = useXDG;
|
||||
version(BSD) version = useXDG;
|
||||
version(FreeBSD) version = useXDG;
|
||||
|
@ -393,8 +393,7 @@ string getConfigurationLocation()
|
|||
{
|
||||
version (useXDG)
|
||||
{
|
||||
int x;
|
||||
import std.process;
|
||||
import std.process : environment;
|
||||
string configDir = environment.get("XDG_CONFIG_HOME", null);
|
||||
if (configDir is null)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue