; Configure which static analysis checks are enabled [analysis.config.StaticAnalysisConfig] ; Check variable, class, struct, interface, union, and function names against ; the Phobos style guide style_check="disabled" ; Check for array literals that cause unnecessary allocation enum_array_literal_check="enabled" ; Check for poor exception handling practices exception_check="enabled" ; Check for use of the deprecated 'delete' keyword delete_check="enabled" ; Check for use of the deprecated floating point operators float_operator_check="enabled" ; Check underscores to improve number constant readability number_style_check="enabled" ; Checks that opEquals, opCmp, toHash, and toString are either const, immutable ; , or inout. object_const_check="enabled" ; Checks for .. expressions where the left side is larger than the right. backwards_range_check="enabled" ; Checks for if statements whose 'then' block is the same as the 'else' block if_else_same_check="enabled" ; Checks for some problems with constructors constructor_check="enabled" ; Checks for unused function parameters unused_parameter_check="disabled" ; Checks for unused variables unused_variable_check="enabled" ; Checks for unused labels unused_label_check="enabled" ; Checks for duplicate attributes duplicate_attribute="enabled" ; Checks that opEquals and toHash are both defined or neither are defined opequals_tohash_check="disabled" ; Checks for subtraction from .length properties length_subtraction_check="disabled" ; Checks for methods or properties whose names conflict with built-in propertie ; s builtin_property_names_check="enabled" ; Checks for confusing code in inline asm statements asm_style_check="enabled" ; Checks for confusing logical operator precedence logical_precedence_check="disabled" ; Checks for undocumented public declarations undocumented_declaration_check="disabled" ; Checks for poor placement of function attributes function_attribute_check="enabled" ; Checks for use of the comma operator comma_expression_check="enabled" ; Checks for local imports that are too broad local_import_check="disabled" ; Checks for variables that could be declared immutable could_be_immutable_check="disabled" ; Checks for redundant expressions in if statements redundant_if_check="enabled" ; Checks for redundant parenthesis redundant_parens_check="disabled" ; Checks for mismatched argument and parameter names mismatched_args_check="disabled" ; Checks for labels with the same name as variables label_var_same_name_check="disabled" ; Checks for lines longer than 120 characters long_line_check="disabled" ; Checks for assignment to auto-ref function parameters auto_ref_assignment_check="disabled" ; Checks for incorrect infinite range definitions incorrect_infinite_range_check="enabled" ; Checks for asserts that are always true useless_assert_check="enabled" ; Check for uses of the old-style alias syntax alias_syntax_check="enabled" ; Checks for else if that should be else static if static_if_else_check="enabled" ; Check for unclear lambda syntax lambda_return_check="enabled" ; Check for auto function without return statement auto_function_check="enabled" ; Check for sortedness of imports imports_sortedness="disabled" ; Check for explicitly annotated unittests explicitly_annotated_unittests="disabled" ; Check for properly documented public functions (Returns, Params) properly_documented_public_functions="disabled" ; Check for useless usage of the final attribute final_attribute_check="enabled" ; Check for virtual calls in the class constructors vcall_in_ctor="enabled" ; Check for useless user defined initializers useless_initializer="disabled" ; Check allman brace style allman_braces_check="disabled" ; Check for redundant attributes redundant_attributes_check="disabled" ; Check for public declarations without a documented unittest has_public_example="disabled" ; Check for asserts without an explanatory message assert_without_msg="disabled" ; Check indent of if constraints if_constraints_indent="enabled" ; Check for @trusted applied to a bigger scope than a single function trust_too_much="disabled" ; Check for redundant storage classes on variable declarations") redundant_storage_classes="enabled" ; Check for unused function return values unused_result="disabled" ; Configure which modules are checked with a specific checker ; Please help to extend these checks onto more Phobos modules ; Process: ; - Pick your favorite check ; - Remove a module from the blacklist ; - Run DScanner ; - Fix the warnings ; - Submit a PR to DMD ; - GOTO: Remove a module ; ; Some checks are currently disabled. [analysis.config.ModuleFilters] trust_too_much="-dmd.root.longdouble" builtin_property_names_check="-dmd.backend.obj,-dmd.backend.code,-dmd.backend.cc" object_const_check="-dmd.dtemplate" enum_array_literal_check="-dmd.astbase,-dmd.backend.oper,-dmd.backend.oper,-dmd.backend.var,-dmd.tokens,-dmd.expression" unused_variable_check="-dmd.backend.aarray,\ -dmd.backend.blockopt,\ -dmd.backend.cg,\ -dmd.backend.x86.cg87,\ -dmd.backend.cgelem,\ -dmd.backend.cgsched,\ -dmd.backend.arm.cod1,\ -dmd.backend.arm.cod2,\ -dmd.backend.arm.cod3,\ -dmd.backend.arm.disasmarm,\ -dmd.backend.arm.instr,\ -dmd.backend.x86.cgxmm,\ -dmd.backend.x86.cod1,\ -dmd.backend.x86.cod2,\ -dmd.backend.x86.cod3,\ -dmd.backend.x86.disasm86,\ -dmd.backend.dcgcv,\ -dmd.backend.dout,\ -dmd.backend.dwarfdbginf,\ -dmd.backend.elfobj,\ -dmd.backend.elpicpie,\ -dmd.backend.gother,\ -dmd.backend.gsroa,\ -dmd.backend.machobj,\ -dmd.backend.mscoffobj,\ -dmd.backend.symbol,\ -dmd.expressionsem,\ -dmd.dsymbolsem,\ -dmd.dtemplate,\ -dmd.dump,\ -dmd.mars,\ -dmd.root.longdouble" number_style_check="-dmd.common.md5"