; 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="enabled" ; 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 number literals for 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="skip-unittest" ; Checks for unused funtion returns unused_result="disabled" ; Checks for unused variables unused_variable_check="skip-unittest" ; 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="skip-unittest" ; Checks for subtraction from .length properties length_subtraction_check="enabled" ; 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="enabled" ; Checks for undocumented public declarations undocumented_declaration_check="enabled" ; 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="skip-unittest" ; Checks for variables that could be declared immutable could_be_immutable_check="enabled" ; Checks for redundant expressions in if statements redundant_if_check="enabled" ; Checks for redundant parenthesis redundant_parens_check="enabled" ; Checks for mismatched argument and parameter names mismatched_args_check="enabled" ; Checks for labels with the same name as variables label_var_same_name_check="enabled" ; Checks for lines longer than 120 characters long_line_check="enabled" ; 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="enabled" ; Check for explicitly annotated unittests explicitly_annotated_unittests="enabled" ; Check for properly documented public functions (Returns, Params) properly_documented_public_functions="enabled" ; 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" ; it doesn't hurt to be a bit explicit ; Check allman brace style allman_braces_check="enabled" ; Check for redundant attributes redundant_attributes_check="enabled" ; Check for public declarations without a documented unittest has_public_example="enabled" ; Check for asserts without an explanatory message assert_without_msg="skip-unittest" ; Check indent of if constraints if_constraints_indent="enabled" ; Check for @trusted applied to a bigger scope than a single function trust_too_much="enabled" ; 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 Phobos ; - GOTO: Remove a module ; ; Some checks are currently disabled. ; For more details, please see https://github.com/dlang/phobos/pull/5501 [analysis.config.ModuleFilters] ; Check for uses of the old-style alias syntax alias_syntax_check="-etc.c.odbc.sql,-etc.c.odbc.sqlext,-etc.c.odbc.sqltypes,-etc.c.odbc.sqlucode,-std.traits,-std.typecons" ; Check allman brace style allman_braces_check="+disabled" ; Checks for confusing code in inline asm statements asm_style_check="-std.math" ; Check for asserts without an explanatory message assert_without_msg="-etc.c.SQL_,\ -std.algorithm.comparison,\ -std.algorithm.iteration,\ -std.algorithm.searching,\ -std.algorithm.setops,\ -std.algorithm.sorting,\ -std.array,\ -std.bigint,\ -std.bitmanip,\ -std.concurrency,\ -std.container,\ -std.container.array,\ -std.container.binaryheap,\ -std.container.dlist,\ -std.container.rbtree,\ -std.container.slist,\ -std.conv,\ -std.csv,\ -std.datetime,\ -std.datetime.date,\ -std.datetime.interval,\ -std.datetime.systime,\ -std.datetime.timezone,\ -std.digest.murmurhash,\ -std.digest.sha,\ -std.encoding,\ -std.exception,\ -std.experimental.allocator,\ -std.experimental.allocator.building_blocks.affix_allocator,\ -std.experimental.allocator.building_blocks.allocator_list,\ -std.experimental.allocator.building_blocks.bitmapped_block,\ -std.experimental.allocator.building_blocks.bucketizer,\ -std.experimental.allocator.building_blocks.free_list,\ -std.experimental.allocator.building_blocks.free_tree,\ -std.experimental.allocator.building_blocks.kernighan_ritchie,\ -std.experimental.allocator.building_blocks.null_allocator,\ -std.experimental.allocator.building_blocks.quantizer,\ -std.experimental.allocator.building_blocks.region,\ -std.experimental.allocator.building_blocks.scoped_allocator,\ -std.experimental.allocator.common,\ -std.experimental.allocator.gc_allocator,\ -std.experimental.allocator.mallocator,\ -std.experimental.allocator.mmap_allocator,\ -std.experimental.allocator.typed,\ -std.checkedint,\ -std.file,\ -std.functional,\ -std.getopt,\ -std.internal.cstring,\ -std.internal.digest.sha_SSSE3,\ -std.internal.math.biguintcore,\ -std.internal.math.biguintnoasm,\ -std.internal.math.gammafunction,\ -std.internal.scopebuffer,\ -std.math,\ -std.mathspecial,\ -std.mmfile,\ -std.net.curl,\ -std.numeric,\ -std.outbuffer,\ -std.parallelism,\ -std.path,\ -std.process,\ -std.random,\ -std.range,\ -std.range.primitives,\ -std.regex,\ -std.regex.internal.backtracking,\ -std.regex.internal.generator,\ -std.regex.internal.ir,\ -std.regex.internal.kickstart,\ -std.regex.internal.parser,\ -std.regex.internal.thompson,\ -std.signals,\ -std.socket,\ -std.stdio,\ -std.string,\ -std.sumtype,\ -std.traits,\ -std.typecons,\ -std.uni,\ -std.uri,\ -std.utf,\ -std.uuid,\ -std.variant,\ -std.windows.registry" ; Checks for assignment to auto-ref function parameters auto_ref_assignment_check="-std.algorithm.mutation,-std.typecons" ; Checks for variables that could be declared immutable could_be_immutable_check="-std.algorithm.comparison,-std.algorithm.iteration,-std.algorithm.mutation,-std.algorithm.searching,-std.algorithm.setops,-std.algorithm.sorting,-std.array,-std.base64,-std.bigint,-std.bitmanip,-std.checkedint,-std.complex,-std.concurrency,-std.container,-std.container.array,-std.container.binaryheap,-std.container.dlist,-std.container.rbtree,-std.container.slist,-std.container.util,-std.conv,-std.csv,-std.datetime,-std.datetime.date,-std.datetime.interval,-std.datetime.stopwatch,-std.datetime.systime,-std.datetime.timezone,-std.digest.crc,-std.digest,-std.digest.hmac,-std.digest.md,-std.digest.murmurhash,-std.digest.ripemd,-std.digest.sha,-std.encoding,-std.exception,-std.experimental.allocator,-std.experimental.allocator.building_blocks.affix_allocator,-std.experimental.allocator.building_blocks.allocator_list,-std.experimental.allocator.building_blocks.bitmapped_block,-std.experimental.allocator.building_blocks.bucketizer,-std.experimental.allocator.building_blocks.fallback_allocator,-std.experimental.allocator.building_blocks.free_list,-std.experimental.allocator.building_blocks.free_tree,-std.experimental.allocator.building_blocks.kernighan_ritchie,-std.experimental.allocator.building_blocks.region,-std.experimental.allocator.building_blocks.stats_collector,-std.experimental.allocator.gc_allocator,-std.experimental.allocator.mallocator,-std.experimental.allocator.typed,-std.experimental.checkedint,-std.logger.core,-std.logger.multilogger,-std.file,-std.format,-std.functional,-std.getopt,-std.internal.cstring,-std.internal.digest.sha_SSSE3,-std.internal.math.biguintcore,-std.internal.math.biguintnoasm,-std.internal.math.biguintx86,-std.internal.math.errorfunction,-std.internal.math.gammafunction,-std.internal.scopebuffer,-std.internal.test.dummyrange,-std.json,-std.math,-std.mathspecial,-std.meta,-std.mmfile,-std.net.curl,-std.net.isemail,-std.numeric,-std.outbuffer,-std.parallelism,-std.path,-std.process,-std.random,-std.range,-std.range.interfaces,-std.range.primitives,-std.regex,-std.regex.internal.backtracking,-std.regex.internal.generator,-std.regex.internal.ir,-std.regex.internal.kickstart,-std.regex.internal.parser,-std.regex.internal.tests,-std.regex.internal.thompson,-std.signals,-std.socket,-std.stdio,-std.string,-std.sumtype,-std.traits,-std.typecons,-std.uni,-std.uri,-std.utf,-std.uuid,-std.variant,-std.windows.registry,-std.zip,-std.zlib" ; Check for poor exception handling practices exception_check="-std.concurrency,-std.net.curl,-std.parallelism,-std.range,-std.socket,-std.typecons" ; Checks for poor placement of function attributes function_attribute_check="-std.algorithm.iteration,-std.concurrency,-std.conv,-std.datetime.interval,-std.exception,-std.functional,-std.net.curl,-std.numeric,-std.parallelism,-std.random,-std.range,-std.range.primitives,-std.socket,-std.traits,-std.typecons,-std.uni" ; Check for public declarations without a documented unittest has_public_example="-etc.c.curl,\ -etc.c.sqlite3,\ -etc.c.zlib,\ -etc.c.odbc.sql,\ -etc.c.odbc.sqlext,\ -etc.c.odbc.sqlucode,\ -std.complex,\ -std.concurrency,\ -std.container.array,\ -std.container.dlist,\ -std.container.rbtree,\ -std.container.slist,\ -std.datetime.interval,\ -std.datetime.stopwatch,\ -std.datetime.timezone,\ -std.encoding,\ -std.experimental.allocator,\ -std.experimental.allocator.building_blocks.allocator_list,\ -std.experimental.allocator.building_blocks.bitmapped_block,\ -std.experimental.allocator.building_blocks.fallback_allocator,\ -std.experimental.allocator.building_blocks.free_list,\ -std.experimental.allocator.building_blocks.free_tree,\ -std.experimental.allocator.building_blocks.null_allocator,\ -std.experimental.allocator.building_blocks.stats_collector,\ -std.experimental.allocator.common,\ -std.experimental.allocator.mmap_allocator,\ -std.experimental.allocator.typed,\ -std.experimental.checkedint,\ -std.logger.core,\ -std.logger.filelogger,\ -std.logger.multilogger,\ -std.getopt,\ -std.internal.math.biguintcore,\ -std.internal.math.biguintnoasm,\ -std.internal.math.errorfunction,\ -std.internal.math.gammafunction,\ -std.internal.scopebuffer,\ -std.internal.test.dummyrange,\ -std.internal.unicode_tables,\ -std.int128,\ -std.json,\ -std.mathspecial,\ -std.mmfile,\ -std.net.curl,\ -std.net.isemail,\ -std.numeric,\ -std.parallelism,\ -std.process,\ -std.range.interfaces,\ -std.regex,\ -std.regex.internal.ir,\ -std.socket,\ -std.stdio,\ -std.sumtype,\ -std.uni,\ -std.zip,\ -std.zlib" ; Check for sortedness of imports imports_sortedness="+disabled" ;imports_sortedness="-etc.c.curl,-std.algorithm.comparison,-std.algorithm.internal,-std.algorithm.iteration,-std.algorithm.mutation,-std.algorithm.searching,-std.algorithm.setops,-std.algorithm.sorting,-std.array,-std.bigint,-std.bitmanip,-std.c.freebsd.socket,-std.c.linux.pthread,-std.c.process,-std.complex,-std.concurrency,-std.container.array,-std.container.binaryheap,-std.container.dlist,-std.container.rbtree,-std.container.slist,-std.container.util,-std.conv,-std.datetime,-std.datetime.date,-std.datetime.interval,-std.datetime.systime,-std.datetime.timezone,-std.digest,-std.digest.hmac,-std.exception,-std.experimental.allocator,-std.experimental.allocator.building_blocks,-std.experimental.allocator.building_blocks.affix_allocator,-std.experimental.allocator.building_blocks.allocator_list,-std.experimental.allocator.building_blocks.free_list,-std.experimental.allocator.building_blocks.free_tree,-std.experimental.allocator.building_blocks.kernighan_ritchie,-std.experimental.allocator.building_blocks.region,-std.experimental.allocator.common,-std.experimental.allocator.mallocator,-std.experimental.allocator.mmap_allocator,-std.experimental.allocator.showcase,-std.experimental.allocator.typed,-std.experimental.checkedint,-std.logger.core,-std.file,-std.format,-std.functional,-std.getopt,-std.internal.math.biguintcore,-std.internal.test.dummyrange,-std.json,-std.math,-std.meta,-std.mmfile,-std.net.curl,-std.net.isemail,-std.numeric,-std.outbuffer,-std.parallelism,-std.path,-std.process,-std.random,-std.range,-std.range.primitives,-std.regex,-std.regex.internal.backtracking,-std.regex.internal.generator,-std.regex.internal.kickstart,-std.regex.internal.parser,-std.regex.internal.tests,-std.signals,-std.socket,-std.stdio,-std.string,-std.uni,-std.utf,-std.uuid,-std.variant,-std.windows.charset,-std.windows.registry,-std.windows.syserror,-std.zip" ; Checks for labels with the same name as variables label_var_same_name_check="-std.algorithm.iteration,-std.algorithm.sorting,-std.array,-std.bigint,-std.bitmanip,-std.conv,-std.encoding,-std.experimental.allocator.building_blocks.segregator,-std.internal.digest.sha_SSSE3,-std.parallelism,-std.process,-std.range.primitives,-std.typecons,-std.utf,-std.traits" ; Checks for subtraction from .length properties length_subtraction_check="+disabled" ;length_subtraction_check="-std.algorithm.internal,-std.algorithm.iteration,-std.algorithm.mutation,-std.algorithm.searching,-std.algorithm.sorting,-std.array,-std.concurrency,-std.container.array,-std.container.binaryheap,-std.conv,-std.datetime.timezone,-std.experimental.allocator.building_blocks.segregator,-std.logger.core,-std.file,-std.format,-std.getopt,-std.internal.math.biguintcore,-std.internal.math.biguintnoasm,-std.internal.math.biguintx86,-std.internal.scopebuffer,-std.math,-std.net.curl,-std.net.isemail,-std.numeric,-std.parallelism,-std.path,-std.process,-std.range,-std.regex,-std.regex.internal.parser,-std.regex.internal.tests,-std.string,-std.uni,-std.windows.charset,-std.windows.registry,-std.zip" ; Checks for local imports that are too broad local_import_check="-std.format" ; Checks for confusing logical operator precedence logical_precedence_check="+disabled" ;logical_precedence_check="-std.algorithm.mutation,-std.algorithm.searching,-std.algorithm.setops,-std.algorithm.sorting,-std.array,-std.container.array,-std.conv,-std.experimental.checkedint,-std.file,-std.format,-std.getopt,-std.math,-std.net.isemail,-std.path,-std.range,-std.range.primitives,-std.stdio,-std.string" ; Checks for mismatched argument and parameter names mismatched_args_check="-std.algorithm.mutation,-std.container.dlist,-std.encoding,-std.internal.math.biguintcore,-std.math,-std.net.curl,-std.numeric,-std.uni" ; Check number literals for readability number_style_check="+disabled" ;number_style_check="-std.algorithm.iteration,-std.algorithm.sorting,-std.array,-std.bigint,-std.bitmanip,-std.container.array,-std.conv,-std.datetime.date,-std.datetime.systime,-std.datetime.timezone,-std.digest.crc,-std.digest,-std.digest.md,-std.digest.ripemd,-std.digest.sha,-std.experimental.allocator.building_blocks.free_tree,-std.experimental.allocator.building_blocks.kernighan_ritchie,-std.experimental.checkedint,-std.file,-std.format,-std.functional,-std.internal.math.biguintcore,-std.internal.math.gammafunction,-std.json,-std.math,-std.outbuffer,-std.parallelism,-std.random,-std.range,-std.regex.internal.generator,-std.utf,-std.zip,-std.zlib" ; Checks that opEquals, opCmp, toHash, and toString are either const, immutable ; , or inout. object_const_check="-std.algorithm.searching,-std.array,-std.bitmanip,-std.checkedint,-std.concurrency,-std.container.rbtree,-std.conv,-std.datetime.interval,-std.encoding,-std.exception,-std.experimental.checkedint,-std.logger.core,-std.format,-std.functional,-std.meta,-std.numeric,-std.range,-std.regex,-std.stdio,-std.sumtype,-std.typecons,-std.variant" ; Checks that opEquals and toHash are both defined or neither are defined opequals_tohash_check="-std.complex,-std.container.array,-std.container.dlist,-std.container.rbtree,-std.container.slist,-std.datetime,-std.datetime.date,-std.experimental.checkedint,-std.internal.test.dummyrange,-std.json,-std.numeric,-std.random,-std.socket,-std.sumtype,-std.typecons,-std.uni" ; Check for properly documented public functions (Returns, Params) ; Note: DScanner doesn't understand documenting parameters of IFTI/eponymous templates. properly_documented_public_functions="-etc.c.odbc.sql,\ -etc.c.odbc.sqlext,\ -etc.c.odbc.sqlucode,\ -etc.c.zlib,\ -std.algorithm.comparison,\ -std.algorithm.mutation,\ -std.algorithm.searching,\ -std.algorithm.setops,\ -std.algorithm.sorting,\ -std.array,\ -std.base64,\ -std.bigint,\ -std.bitmanip,\ -std.checkedint,\ -std.complex,\ -std.container,\ -std.container.array,\ -std.container.binaryheap,\ -std.container.dlist,\ -std.container.rbtree,\ -std.container.slist,\ -std.container.util,\ -std.csv,\ -std.datetime,\ -std.datetime.interval,\ -std.digest.crc,\ -std.digest,\ -std.digest.hmac,\ -std.digest.md,\ -std.digest.murmurhash,\ -std.digest.ripemd,\ -std.digest.sha,\ -std.encoding,\ -std.exception,\ -std.experimental.allocator,\ -std.experimental.allocator.building_blocks.affix_allocator,\ -std.experimental.allocator.building_blocks.allocator_list,\ -std.experimental.allocator.building_blocks.bitmapped_block,\ -std.experimental.allocator.building_blocks.bucketizer,\ -std.experimental.allocator.building_blocks.fallback_allocator,\ -std.experimental.allocator.building_blocks.free_list,\ -std.experimental.allocator.building_blocks.free_tree,\ -std.experimental.allocator.building_blocks.kernighan_ritchie,\ -std.experimental.allocator.building_blocks.null_allocator,\ -std.experimental.allocator.building_blocks.quantizer,\ -std.experimental.allocator.building_blocks.region,\ -std.experimental.allocator.building_blocks.scoped_allocator,\ -std.experimental.allocator.building_blocks.segregator,\ -std.experimental.allocator.building_blocks.stats_collector,\ -std.experimental.allocator.common,\ -std.experimental.allocator.gc_allocator,\ -std.experimental.allocator.mallocator,\ -std.experimental.allocator.showcase,\ -std.experimental.allocator.typed,\ -std.experimental.checkedint,\ -std.logger.core,\ -std.logger.filelogger,\ -std.format,\ -std.getopt,\ -std.internal.cstring,\ -std.internal.math.biguintcore,\ -std.internal.math.biguintnoasm,\ -std.internal.scopebuffer,\ -std.internal.test.dummyrange,\ -std.internal.unicode_tables,\ -std.json,\ -std.math,\ -std.mathspecial,\ -std.meta,\ -std.mmfile,\ -std.net.curl,\ -std.net.isemail,\ -std.numeric,\ -std.outbuffer,\ -std.parallelism,\ -std.path,\ -std.random,\ -std.range,\ -std.range.interfaces,\ -std.range.primitives,\ -std.regex,\ -std.regex.internal.backtracking,\ -std.regex.internal.ir,\ -std.regex.internal.kickstart,\ -std.regex.internal.parser,\ -std.regex.internal.thompson,\ -std.signals,\ -std.socket,\ -std.stdio,\ -std.string,\ -std.sumtype,\ -std.typecons,\ -std.uni,\ -std.uri,\ -std.utf,\ -std.uuid,\ -std.variant,\ -std.zlib" ; Check for redundant attributes redundant_attributes_check="-std.concurrency,-std.digest.md,-std.digest.ripemd,-std.digest.sha,-std.internal.math.biguintcore,-std.math,-std.meta,-std.range,-std.regex.internal.ir,-std.uni,-std.windows.registry" ; Check variable, class, struct, interface, union, and function names against ; the Phobos style guide style_check="+disabled" ;style_check="-etc.c.curl,-etc.c.odbc.sqlext,-etc.c.odbc.sqltypes,-etc.c.odbc.sqlucode,-etc.c.sqlite3,-etc.c.zlib,-std.algorithm.comparison,-std.algorithm.internal,-std.algorithm.iteration,-std.algorithm.mutation,-std.algorithm.sorting,-std.array,-std.base64,-std.bitmanip,-std.c.linux.linux,-std.compiler,-std.container.array,-std.conv,-std.datetime.date,-std.datetime.interval,-std.datetime.systime,-std.digest,-std.digest.murmurhash,-std.digest.sha,-std.encoding,-std.exception,-std.experimental.allocator,-std.experimental.allocator.building_blocks.affix_allocator,-std.experimental.allocator.building_blocks.allocator_list,-std.experimental.allocator.building_blocks.bucketizer,-std.experimental.allocator.building_blocks.fallback_allocator,-std.experimental.allocator.building_blocks.free_list,-std.experimental.allocator.building_blocks.free_tree,-std.experimental.allocator.building_blocks.null_allocator,-std.experimental.allocator.building_blocks.region,-std.experimental.allocator.building_blocks.segregator,-std.experimental.allocator.common,-std.experimental.allocator.gc_allocator,-std.experimental.allocator.mallocator,-std.experimental.allocator.mmap_allocator,-std.experimental.checkedint,-std.format,-std.functional,-std.getopt,-std.internal.digest.sha_SSSE3,-std.internal.math.errorfunction,-std.internal.math.gammafunction,-std.internal.test.dummyrange,-std.internal.unicode_tables,-std.json,-std.math,-std.meta,-std.numeric,-std.parallelism,-std.path,-std.process,-std.random,-std.range,-std.range.primitives,-std.regex,-std.regex.internal.ir,-std.regex.internal.kickstart,-std.signals,-std.socket,-std.stdio,-std.string,-std.uni,-std.uri,-std.utf,-std.uuid,-std.variant,-std.zlib" ; Checks for undocumented public declarations undocumented_declaration_check="-etc.c.curl,-etc.c.odbc.sql,-etc.c.odbc.sqlext,-etc.c.odbc.sqltypes,-etc.c.odbc.sqlucode,-etc.c.sqlite3,-etc.c.zlib,-std.algorithm.sorting,-std.array,-std.ascii,-std.base64,-std.bitmanip,-std.c.linux.linux,-std.c.linux.socket,-std.c.osx.socket,-std.c.process,-std.compiler,-std.complex,-std.concurrency,-std.container,-std.container.array,-std.container.binaryheap,-std.container.dlist,-std.container.rbtree,-std.container.slist,-std.conv,-std.csv,-std.datetime,-std.datetime.date,-std.digest,-std.digest.hmac,-std.digest.md,-std.digest.murmurhash,-std.digest.ripemd,-std.digest.sha,-std.encoding,-std.exception,-std.experimental.allocator,-std.experimental.allocator.building_blocks.affix_allocator,-std.experimental.allocator.building_blocks.allocator_list,-std.experimental.allocator.building_blocks.bitmapped_block,-std.experimental.allocator.building_blocks.fallback_allocator,-std.experimental.allocator.building_blocks.free_list,-std.experimental.allocator.building_blocks.free_tree,-std.experimental.allocator.building_blocks.kernighan_ritchie,-std.experimental.allocator.building_blocks.quantizer,-std.experimental.allocator.building_blocks.region,-std.experimental.allocator.building_blocks.segregator,-std.experimental.allocator.building_blocks.stats_collector,-std.experimental.allocator.gc_allocator,-std.experimental.allocator.mallocator,-std.experimental.checkedint,-std.logger.core,-std.file,-std.format,-std.functional,-std.internal.digest.sha_SSSE3,-std.internal.math.biguintcore,-std.internal.math.biguintnoasm,-std.internal.math.biguintx86,-std.internal.math.errorfunction,-std.internal.math.gammafunction,-std.internal.test.dummyrange,-std.internal.test.uda,-std.internal.windows.advapi32,-std.json,-std.math,-std.mmfile,-std.numeric,-std.outbuffer,-std.parallelism,-std.path,-std.process,-std.regex,-std.regex.internal.parser,-std.signals,-std.socket,-std.stdio,-std.string,-std.system,-std.traits,-std.uni,-std.utf,-std.variant,-std.windows.charset,-std.windows.registry,-std.windows.syserror,-std.zip,-std.zlib,-std.int128" ; Checks for unused labels unused_label_check="-std.conv,-std.internal.math.biguintx86,-std.regex.internal.thompson,-std.signals,-std.uni" ; Checks for unused function parameters unused_parameter_check="-std.algorithm.comparison,\ -std.bitmanip,\ -std.concurrency,\ -std.container,\ -std.csv,\ -std.datetime,\ -std.datetime.date,\ -std.datetime.interval,\ -std.datetime.systime,\ -std.datetime.timezone,\ -std.digest,\ -std.encoding,\ -std.experimental.allocator.common,\ -std.experimental.checkedint,\ -std.format,\ -std.functional,\ -std.getopt,\ -std.internal.math.biguintx86,\ -std.math,\ -std.net.curl,\ -std.numeric,\ -std.parallelism,\ -std.range,\ -std.regex,\ -std.socket,\ -std.traits,\ -std.typecons" ; Checks for unused variables unused_variable_check="-std.algorithm.comparison,\ -std.array,\ -std.bitmanip,\ -std.complex,\ -std.concurrency,\ -std.container,\ -std.container.array,\ -std.container.dlist,\ -std.container.rbtree,\ -std.container.slist,\ -std.csv,\ -std.datetime,\ -std.datetime.date,\ -std.datetime.interval,\ -std.datetime.stopwatch,\ -std.datetime.systime,\ -std.datetime.timezone,\ -std.digest.crc,\ -std.digest,\ -std.digest.md,\ -std.digest.murmurhash,\ -std.digest.ripemd,\ -std.digest.sha,\ -std.encoding,\ -std.exception,\ -std.experimental.allocator,\ -std.experimental.allocator.building_blocks.affix_allocator,\ -std.experimental.allocator.building_blocks.bitmapped_block,\ -std.experimental.allocator.building_blocks.bucketizer,\ -std.experimental.allocator.building_blocks.kernighan_ritchie,\ -std.experimental.allocator.building_blocks.stats_collector,\ -std.experimental.allocator.common,\ -std.experimental.allocator.gc_allocator,\ -std.experimental.allocator.mallocator,\ -std.experimental.allocator.typed,\ -std.experimental.checkedint,\ -std.logger.core,\ -std.file,\ -std.functional,\ -std.getopt,\ -std.internal.cstring,\ -std.internal.digest.sha_SSSE3,\ -std.internal.math.biguintcore,\ -std.internal.math.biguintx86,\ -std.internal.math.errorfunction,\ -std.internal.scopebuffer,\ -std.internal.test.dummyrange,\ -std.json,\ -std.math,\ -std.meta,\ -std.mmfile,\ -std.net.curl,\ -std.numeric,\ -std.parallelism,\ -std.process,\ -std.random,\ -std.range,\ -std.range.interfaces,\ -std.range.primitives,\ -std.regex.internal.backtracking,\ -std.regex.internal.tests,\ -std.regex.internal.thompson,\ -std.signals,\ -std.socket,\ -std.traits,\ -std.typecons,\ -std.uni,\ -std.uri,\ -std.utf,\ -std.uuid,\ -std.variant,\ -std.windows.registry,\ -std.zip,\ -std.zlib" ; Check for virtual calls in the class constructors vcall_in_ctor="-std.socket" ; Check for @trusted applied to a bigger scope than a single function trust_too_much="-std.regex,-std.stdio,-std.uni,-std.internal.cstring" ; Checks for if statements whose 'then' block is the same as the 'else' block ; Temporarily disable until https://github.com/dlang-community/D-Scanner/issues/593 is fixed if_else_same_check="-std.typecons" ; Disable checks for generated unicode tables long_line_check="-etc.c.odbc.sql,-etc.c.odbc.sqlext,-etc.c.odbc.sqltypes,-etc.c.odbc.sqlucode,-std.internal.unicode_decomp,-std.internal.unicode_comp,-std.internal.unicode_grapheme,-std.internal.unicode_norm,-std.internal.unicode_tables"