pub const SITE_POLICIES: &[(&str, u8)] = &[
("BuiltinFunctions::ProhibitBooleanGrep", 2),
("BuiltinFunctions::ProhibitComplexMappings", 3),
("BuiltinFunctions::ProhibitLvalueSubstr", 3),
("BuiltinFunctions::ProhibitReverseSortBlock", 1),
("BuiltinFunctions::ProhibitShiftRef", 3),
("BuiltinFunctions::ProhibitSleepViaSelect", 5),
("BuiltinFunctions::ProhibitStringyEval", 5),
("BuiltinFunctions::ProhibitStringySplit", 2),
("BuiltinFunctions::ProhibitUniversalCan", 3),
("BuiltinFunctions::ProhibitUniversalIsa", 3),
("BuiltinFunctions::ProhibitUselessTopic", 2),
("BuiltinFunctions::ProhibitVoidGrep", 3),
("BuiltinFunctions::ProhibitVoidMap", 3),
("BuiltinFunctions::RequireBlockGrep", 4),
("BuiltinFunctions::RequireBlockMap", 4),
("BuiltinFunctions::RequireGlobFunction", 5),
("BuiltinFunctions::RequireSimpleSortBlock", 3),
("ClassHierarchies::ProhibitAutoloading", 3),
("ClassHierarchies::ProhibitExplicitISA", 3),
("ClassHierarchies::ProhibitOneArgBless", 5),
("CodeLayout::ProhibitHardTabs", 3),
("CodeLayout::ProhibitParensWithBuiltins", 1),
("CodeLayout::ProhibitQuotedWordLists", 2),
("CodeLayout::ProhibitTrailingWhitespace", 1),
("CodeLayout::RequireConsistentNewlines", 4),
("CodeLayout::RequireTidyCode", 1),
("CodeLayout::RequireTrailingCommas", 1),
("ControlStructures::ProhibitCStyleForLoops", 2),
("ControlStructures::ProhibitCascadingIfElse", 3),
("ControlStructures::ProhibitDeepNests", 3),
("ControlStructures::ProhibitLabelsWithSpecialBlockNames", 4),
("ControlStructures::ProhibitMutatingListFunctions", 5),
(
"ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions",
3,
),
("ControlStructures::ProhibitPostfixControls", 2),
("ControlStructures::ProhibitUnlessBlocks", 2),
("ControlStructures::ProhibitUnreachableCode", 4),
("ControlStructures::ProhibitUntilBlocks", 2),
("ControlStructures::ProhibitYadaOperator", 4),
("Documentation::PodSpelling", 1),
("Documentation::RequirePackageMatchesPodName", 1),
("Documentation::RequirePodAtEnd", 1),
("Documentation::RequirePodSections", 2),
("ErrorHandling::RequireCarping", 3),
("ErrorHandling::RequireCheckingReturnValueOfEval", 3),
("InputOutput::ProhibitBacktickOperators", 3),
("InputOutput::ProhibitBarewordDirHandles", 5),
("InputOutput::ProhibitBarewordFileHandles", 5),
("InputOutput::ProhibitExplicitStdin", 4),
("InputOutput::ProhibitInteractiveTest", 5),
("InputOutput::ProhibitJoinedReadline", 3),
("InputOutput::ProhibitOneArgSelect", 4),
("InputOutput::ProhibitReadlineInForLoop", 4),
("InputOutput::ProhibitTwoArgOpen", 5),
("InputOutput::RequireBracedFileHandleWithPrint", 1),
("InputOutput::RequireBriefOpen", 4),
("InputOutput::RequireCheckedClose", 2),
("InputOutput::RequireCheckedOpen", 3),
("InputOutput::RequireCheckedSyscalls", 1),
("InputOutput::RequireEncodingWithUTF8Layer", 5),
("Miscellanea::ProhibitFormats", 3),
("Miscellanea::ProhibitTies", 2),
("Miscellanea::ProhibitUnrestrictedNoCritic", 3),
("Miscellanea::ProhibitUselessNoCritic", 2),
("Modules::ProhibitAutomaticExportation", 4),
("Modules::ProhibitConditionalUseStatements", 3),
("Modules::ProhibitEvilModules", 5),
("Modules::ProhibitExcessMainComplexity", 3),
("Modules::ProhibitMultiplePackages", 4),
("Modules::RequireBarewordIncludes", 5),
("Modules::RequireEndWithOne", 4),
("Modules::RequireExplicitPackage", 4),
("Modules::RequireFilenameMatchesPackage", 5),
("Modules::RequireNoMatchVarsWithUseEnglish", 2),
("Modules::RequireVersionVar", 2),
("NamingConventions::Capitalization", 1),
("NamingConventions::ProhibitAmbiguousNames", 3),
("Objects::ProhibitIndirectSyntax", 4),
("References::ProhibitDoubleSigils", 2),
("RegularExpressions::ProhibitCaptureWithoutTest", 3),
("RegularExpressions::ProhibitComplexRegexes", 3),
("RegularExpressions::ProhibitEnumeratedClasses", 1),
("RegularExpressions::ProhibitEscapedMetacharacters", 1),
("RegularExpressions::ProhibitFixedStringMatches", 2),
("RegularExpressions::ProhibitSingleCharAlternation", 1),
("RegularExpressions::ProhibitUnusedCapture", 3),
("RegularExpressions::ProhibitUnusualDelimiters", 1),
("RegularExpressions::ProhibitUselessTopic", 2),
("RegularExpressions::RequireBracesForMultiline", 1),
("RegularExpressions::RequireDotMatchAnything", 2),
("RegularExpressions::RequireExtendedFormatting", 3),
("RegularExpressions::RequireLineBoundaryMatching", 2),
("Subroutines::ProhibitAmpersandSigils", 2),
("Subroutines::ProhibitBuiltinHomonyms", 4),
("Subroutines::ProhibitExcessComplexity", 3),
("Subroutines::ProhibitExplicitReturnUndef", 5),
("Subroutines::ProhibitManyArgs", 3),
("Subroutines::ProhibitNestedSubs", 5),
("Subroutines::ProhibitReturnSort", 5),
("Subroutines::ProhibitSubroutinePrototypes", 5),
("Subroutines::ProhibitUnusedPrivateSubroutines", 3),
("Subroutines::ProtectPrivateSubs", 3),
("Subroutines::RequireArgUnpacking", 4),
("Subroutines::RequireFinalReturn", 4),
("TestingAndDebugging::ProhibitNoStrict", 5),
("TestingAndDebugging::ProhibitNoWarnings", 4),
("TestingAndDebugging::ProhibitProlongedStrictureOverride", 4),
("TestingAndDebugging::RequireTestLabels", 3),
("TestingAndDebugging::RequireUseStrict", 5),
("TestingAndDebugging::RequireUseWarnings", 4),
("ValuesAndExpressions::ProhibitCommaSeparatedStatements", 4),
("ValuesAndExpressions::ProhibitComplexVersion", 3),
("ValuesAndExpressions::ProhibitConstantPragma", 4),
("ValuesAndExpressions::ProhibitEmptyQuotes", 2),
("ValuesAndExpressions::ProhibitEscapedCharacters", 2),
("ValuesAndExpressions::ProhibitImplicitNewlines", 3),
("ValuesAndExpressions::ProhibitInterpolationOfLiterals", 1),
("ValuesAndExpressions::ProhibitLeadingZeros", 5),
("ValuesAndExpressions::ProhibitLongChainsOfMethodCalls", 2),
("ValuesAndExpressions::ProhibitMagicNumbers", 2),
("ValuesAndExpressions::ProhibitMismatchedOperators", 3),
("ValuesAndExpressions::ProhibitMixedBooleanOperators", 4),
("ValuesAndExpressions::ProhibitNoisyQuotes", 2),
(
"ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters",
3,
),
(
"ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator",
3,
),
("ValuesAndExpressions::ProhibitVersionStrings", 3),
("ValuesAndExpressions::RequireConstantVersion", 2),
("ValuesAndExpressions::RequireInterpolationOfMetachars", 1),
("ValuesAndExpressions::RequireNumberSeparators", 2),
("ValuesAndExpressions::RequireQuotedHeredocTerminator", 3),
("ValuesAndExpressions::RequireUpperCaseHeredocTerminator", 2),
("Variables::ProhibitAugmentedAssignmentInDeclaration", 4),
("Variables::ProhibitConditionalDeclarations", 5),
("Variables::ProhibitEvilVariables", 5),
("Variables::ProhibitLocalVars", 2),
("Variables::ProhibitMatchVars", 4),
("Variables::ProhibitPackageVars", 3),
("Variables::ProhibitPerl4PackageNames", 2),
("Variables::ProhibitPunctuationVars", 2),
("Variables::ProhibitReusedNames", 3),
("Variables::ProhibitUnusedVariables", 3),
("Variables::ProtectPrivateVars", 3),
("Variables::RequireInitializationForLocalVars", 3),
("Variables::RequireLexicalLoopIterators", 5),
("Variables::RequireLocalizedPunctuationVars", 4),
("Variables::RequireNegativeIndices", 4),
];
#[cfg(test)]
mod tests {
#[test]
fn site_policies_are_in_perl_critic_order() {
let names: Vec<&str> = super::SITE_POLICIES.iter().map(|(n, _)| *n).collect();
let mut sorted = names.clone();
sorted.sort_unstable();
assert_eq!(names, sorted);
}
}