| //===-- flang/unittests/Common/FastIntSetTest.cpp ---------------*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "gtest/gtest.h" |
| #include "flang/Support/Fortran-features.h" |
| |
| namespace Fortran::common::details { |
| |
| std::string CamelCaseToLowerCaseHyphenated(std::string_view x); |
| |
| TEST(FortranFeaturesTest, CamelCaseToLowerCaseHyphenated) { |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BackslashEscapes)), |
| "backslash-escapes"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::OldDebugLines)), |
| "old-debug-lines"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| LanguageFeature::FixedFormContinuationWithColumn1Ampersand)), |
| "fixed-form-continuation-with-column1-ampersand"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::LogicalAbbreviations)), |
| "logical-abbreviations"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::XOROperator)), |
| "xor-operator"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::PunctuationInNames)), |
| "punctuation-in-names"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::OptionalFreeFormSpace)), |
| "optional-free-form-space"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BOZExtensions)), |
| "boz-extensions"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::EmptyStatement)), |
| "empty-statement"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AlternativeNE)), |
| "alternative-ne"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ExecutionPartNamelist)), |
| "execution-part-namelist"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::DECStructures)), |
| "dec-structures"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::DoubleComplex)), |
| "double-complex"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Byte)), |
| "byte"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::StarKind)), |
| "star-kind"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ExponentMatchingKindParam)), |
| "exponent-matching-kind-param"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::QuadPrecision)), |
| "quad-precision"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::SlashInitialization)), |
| "slash-initialization"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::TripletInArrayConstructor)), |
| "triplet-in-array-constructor"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::MissingColons)), |
| "missing-colons"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::SignedComplexLiteral)), |
| "signed-complex-literal"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::OldStyleParameter)), |
| "old-style-parameter"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ComplexConstructor)), |
| "complex-constructor"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::PercentLOC)), |
| "percent-loc"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::SignedMultOperand)), |
| "signed-mult-operand"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::FileName)), |
| "file-name"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::Carriagecontrol)), |
| "carriagecontrol"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Convert)), |
| "convert"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Dispose)), |
| "dispose"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::IOListLeadingComma)), |
| "io-list-leading-comma"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AbbreviatedEditDescriptor)), |
| "abbreviated-edit-descriptor"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ProgramParentheses)), |
| "program-parentheses"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::PercentRefAndVal)), |
| "percent-ref-and-val"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::OmitFunctionDummies)), |
| "omit-function-dummies"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::CrayPointer)), |
| "cray-pointer"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Hollerith)), |
| "hollerith"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ArithmeticIF)), |
| "arithmetic-if"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Assign)), |
| "assign"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AssignedGOTO)), |
| "assigned-goto"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Pause)), |
| "pause"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::OpenACC)), |
| "open-acc"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::OpenMP)), |
| "open-mp"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::CUDA)), |
| "cuda"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::CruftAfterAmpersand)), |
| "cruft-after-ampersand"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ClassicCComments)), |
| "classic-c-comments"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AdditionalFormats)), |
| "additional-formats"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BigIntLiterals)), |
| "big-int-literals"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::RealDoControls)), |
| "real-do-controls"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::EquivalenceNumericWithCharacter)), |
| "equivalence-numeric-with-character"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::EquivalenceNonDefaultNumeric)), |
| "equivalence-non-default-numeric"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::EquivalenceSameNonSequence)), |
| "equivalence-same-non-sequence"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AdditionalIntrinsics)), |
| "additional-intrinsics"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AnonymousParents)), |
| "anonymous-parents"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::OldLabelDoEndStatements)), |
| "old-label-do-end-statements"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::LogicalIntegerAssignment)), |
| "logical-integer-assignment"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::EmptySourceFile)), |
| "empty-source-file"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ProgramReturn)), |
| "program-return"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ImplicitNoneTypeNever)), |
| "implicit-none-type-never"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ImplicitNoneTypeAlways)), |
| "implicit-none-type-always"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ImplicitNoneExternal)), |
| "implicit-none-external"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ForwardRefImplicitNone)), |
| "forward-ref-implicit-none"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::OpenAccessAppend)), |
| "open-access-append"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BOZAsDefaultInteger)), |
| "boz-as-default-integer"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::DistinguishableSpecifics)), |
| "distinguishable-specifics"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::DefaultSave)), |
| "default-save"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::PointerInSeqType)), |
| "pointer-in-seq-type"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::NonCharacterFormat)), |
| "non-character-format"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::SaveMainProgram)), |
| "save-main-program"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::SaveBigMainProgramVariables)), |
| "save-big-main-program-variables"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::DistinctArrayConstructorLengths)), |
| "distinct-array-constructor-lengths"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::PPCVector)), |
| "ppc-vector"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::RelaxedIntentInChecking)), |
| "relaxed-intent-in-checking"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ForwardRefImplicitNoneData)), |
| "forward-ref-implicit-none-data"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::NullActualForAllocatable)), |
| "null-actual-for-allocatable"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| LanguageFeature::ActualIntegerConvertedToSmallerKind)), |
| "actual-integer-converted-to-smaller-kind"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::HollerithOrCharacterAsBOZ)), |
| "hollerith-or-character-as-boz"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BindingAsProcedure)), |
| "binding-as-procedure"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::StatementFunctionExtensions)), |
| "statement-function-extensions"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| LanguageFeature::UseGenericIntrinsicWhenSpecificDoesntMatch)), |
| "use-generic-intrinsic-when-specific-doesnt-match"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::DataStmtExtensions)), |
| "data-stmt-extensions"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::RedundantContiguous)), |
| "redundant-contiguous"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::RedundantAttribute)), |
| "redundant-attribute"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::InitBlankCommon)), |
| "init-blank-common"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::EmptyBindCDerivedType)), |
| "empty-bind-c-derived-type"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::MiscSourceExtensions)), |
| "misc-source-extensions"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AllocateToOtherLength)), |
| "allocate-to-other-length"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::LongNames)), |
| "long-names"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::IntrinsicAsSpecific)), |
| "intrinsic-as-specific"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BenignNameClash)), |
| "benign-name-clash"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BenignRedundancy)), |
| "benign-redundancy"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| LanguageFeature::NullMoldAllocatableComponentValue)), |
| "null-mold-allocatable-component-value"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::NopassScalarBase)), |
| "nopass-scalar-base"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::MiscUseExtensions)), |
| "misc-use-extensions"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ImpliedDoIndexScope)), |
| "implied-do-index-scope"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::DistinctCommonSizes)), |
| "distinct-common-sizes"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::OddIndexVariableRestrictions)), |
| "odd-index-variable-restrictions"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::IndistinguishableSpecifics)), |
| "indistinguishable-specifics"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::SubroutineAndFunctionSpecifics)), |
| "subroutine-and-function-specifics"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::EmptySequenceType)), |
| "empty-sequence-type"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::NonSequenceCrayPointee)), |
| "non-sequence-cray-pointee"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BranchIntoConstruct)), |
| "branch-into-construct"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::BadBranchTarget)), |
| "bad-branch-target"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::HollerithPolymorphic)), |
| "hollerith-polymorphic"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ListDirectedSize)), |
| "list-directed-size"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::NonBindCInteroperability)), |
| "non-bind-c-interoperability"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::CudaManaged)), |
| "cuda-managed"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::CudaUnified)), |
| "cuda-unified"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature:: |
| PolymorphicActualAllocatableOrPointerToMonomorphicDummy)), |
| "polymorphic-actual-allocatable-or-pointer-to-monomorphic-dummy"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::RelaxedPureDummy)), |
| "relaxed-pure-dummy"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| LanguageFeature::UndefinableAsynchronousOrVolatileActual)), |
| "undefinable-asynchronous-or-volatile-actual"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AutomaticInMainProgram)), |
| "automatic-in-main-program"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::PrintCptr)), |
| "print-cptr"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::SavedLocalInSpecExpr)), |
| "saved-local-in-spec-expr"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::PrintNamelist)), |
| "print-namelist"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| LanguageFeature::AssumedRankPassedToNonAssumedRank)), |
| "assumed-rank-passed-to-non-assumed-rank"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::IgnoreIrrelevantAttributes)), |
| "ignore-irrelevant-attributes"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(LanguageFeature::Unsigned)), |
| "unsigned"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::AmbiguousStructureConstructor)), |
| "ambiguous-structure-constructor"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ContiguousOkForSeqAssociation)), |
| "contiguous-ok-for-seq-association"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(LanguageFeature::ForwardRefExplicitTypeDummy)), |
| "forward-ref-explicit-type-dummy"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Portability)), |
| "portability"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::PointerToUndefinable)), |
| "pointer-to-undefinable"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::NonTargetPassedToTarget)), |
| "non-target-passed-to-target"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::PointerToPossibleNoncontiguous)), |
| "pointer-to-possible-noncontiguous"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ShortCharacterActual)), |
| "short-character-actual"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ShortArrayActual)), |
| "short-array-actual"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ImplicitInterfaceActual)), |
| "implicit-interface-actual"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::PolymorphicTransferArg)), |
| "polymorphic-transfer-arg"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::PointerComponentTransferArg)), |
| "pointer-component-transfer-arg"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::TransferSizePresence)), |
| "transfer-size-presence"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::F202XAllocatableBreakingChange)), |
| "f202-x-allocatable-breaking-change"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::OptionalMustBePresent)), |
| "optional-must-be-present"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::CommonBlockPadding)), |
| "common-block-padding"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::LogicalVsCBool)), |
| "logical-vs-c-bool"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::BindCCharLength)), |
| "bind-c-char-length"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ProcDummyArgShapes)), |
| "proc-dummy-arg-shapes"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ExternalNameConflict)), |
| "external-name-conflict"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::FoldingException)), |
| "folding-exception"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::FoldingAvoidsRuntimeCrash)), |
| "folding-avoids-runtime-crash"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::FoldingValueChecks)), |
| "folding-value-checks"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::FoldingFailure)), |
| "folding-failure"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::FoldingLimit)), |
| "folding-limit"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::Interoperability)), |
| "interoperability"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::CharacterInteroperability)), |
| "character-interoperability"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Bounds)), |
| "bounds"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Preprocessing)), |
| "preprocessing"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Scanning)), |
| "scanning"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::OpenAccUsage)), |
| "open-acc-usage"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ProcPointerCompatibility)), |
| "proc-pointer-compatibility"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::VoidMold)), |
| "void-mold"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::KnownBadImplicitInterface)), |
| "known-bad-implicit-interface"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::EmptyCase)), |
| "empty-case"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::CaseOverflow)), |
| "case-overflow"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::CUDAUsage)), |
| "cuda-usage"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::IgnoreTKRUsage)), |
| "ignore-tkr-usage"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ExternalInterfaceMismatch)), |
| "external-interface-mismatch"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::DefinedOperatorArgs)), |
| "defined-operator-args"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::Final)), |
| "final"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::ZeroDoStep)), |
| "zero-do-step"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::UnusedForallIndex)), |
| "unused-forall-index"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::OpenMPUsage)), |
| "open-mp-usage"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::DataLength)), |
| "data-length"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::IgnoredDirective)), |
| "ignored-directive"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::HomonymousSpecific)), |
| "homonymous-specific"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::HomonymousResult)), |
| "homonymous-result"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::IgnoredIntrinsicFunctionType)), |
| "ignored-intrinsic-function-type"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::PreviousScalarUse)), |
| "previous-scalar-use"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::RedeclaredInaccessibleComponent)), |
| "redeclared-inaccessible-component"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::ImplicitShared)), |
| "implicit-shared"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::IndexVarRedefinition)), |
| "index-var-redefinition"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::IncompatibleImplicitInterfaces)), |
| "incompatible-implicit-interfaces"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::VectorSubscriptFinalization)), |
| "vector-subscript-finalization"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::UndefinedFunctionResult)), |
| "undefined-function-result"); |
| EXPECT_EQ( |
| CamelCaseToLowerCaseHyphenated(EnumToString(UsageWarning::UselessIomsg)), |
| "useless-iomsg"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::MismatchingDummyProcedure)), |
| "mismatching-dummy-procedure"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::SubscriptedEmptyArray)), |
| "subscripted-empty-array"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::UnsignedLiteralTruncation)), |
| "unsigned-literal-truncation"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| UsageWarning::CompatibleDeclarationsFromDistinctModules)), |
| "compatible-declarations-from-distinct-modules"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| UsageWarning::NullActualForDefaultIntentAllocatable)), |
| "null-actual-for-default-intent-allocatable"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated(EnumToString( |
| UsageWarning::UseAssociationIntoSameNameSubprogram)), |
| "use-association-into-same-name-subprogram"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::HostAssociatedIntentOutInSpecExpr)), |
| "host-associated-intent-out-in-spec-expr"); |
| EXPECT_EQ(CamelCaseToLowerCaseHyphenated( |
| EnumToString(UsageWarning::NonVolatilePointerToVolatile)), |
| "non-volatile-pointer-to-volatile"); |
| } |
| |
| TEST(FortranFeaturesTest, HintLanguageControlFlag) { |
| LanguageFeatureControl control{}; |
| EXPECT_EQ(control.getDefaultCliSpelling(LanguageFeature::BenignNameClash), |
| "benign-name-clash"); |
| EXPECT_EQ( |
| control.getDefaultCliSpelling(UsageWarning::Portability), "portability"); |
| } |
| |
| } // namespace Fortran::common::details |