Author: Kazu Hirata Date: 2022-12-03T11:54:48-08:00 New Revision: cd8702efe7e6cacfd82cc4909e42718224bcd5d0
URL: https://github.com/llvm/llvm-project/commit/cd8702efe7e6cacfd82cc4909e42718224bcd5d0 DIFF: https://github.com/llvm/llvm-project/commit/cd8702efe7e6cacfd82cc4909e42718224bcd5d0.diff LOG: [clang-tidy] Use std::nullopt instead of None (NFC) This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of manual work required in migrating from Optional to std::optional. This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716 Added: Modified: clang-tools-extra/clang-tidy/ClangTidyCheck.cpp clang-tools-extra/clang-tidy/ClangTidyCheck.h clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp clang-tools-extra/clang-tidy/ClangTidyOptions.cpp clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp clang-tools-extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp clang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp clang-tools-extra/clang-tidy/cppcoreguidelines/VirtualClassDestructorCheck.cpp clang-tools-extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp clang-tools-extra/clang-tidy/utils/LexerUtils.cpp clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp clang-tools-extra/clang-tidy/utils/TypeTraits.cpp clang-tools-extra/clang-tidy/utils/UsingInserter.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp index 83aef0a40c9a1..6bb0b2ac32513 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyCheck.cpp @@ -58,7 +58,7 @@ ClangTidyCheck::OptionsView::get(StringRef LocalName) const { const auto &Iter = CheckOptions.find((NamePrefix + LocalName).str()); if (Iter != CheckOptions.end()) return StringRef(Iter->getValue().Value); - return None; + return std::nullopt; } static ClangTidyOptions::OptionMap::const_iterator @@ -86,7 +86,7 @@ ClangTidyCheck::OptionsView::getLocalOrGlobal(StringRef LocalName) const { Context->getOptionsCollector()); if (Iter != CheckOptions.end()) return StringRef(Iter->getValue().Value); - return None; + return std::nullopt; } static Optional<bool> getAsBool(StringRef Value, @@ -99,7 +99,7 @@ static Optional<bool> getAsBool(StringRef Value, long long Number; if (!Value.getAsInteger(10, Number)) return Number != 0; - return None; + return std::nullopt; } template <> @@ -110,7 +110,7 @@ ClangTidyCheck::OptionsView::get<bool>(StringRef LocalName) const { return Result; diagnoseBadBooleanOption(NamePrefix + LocalName, *ValueOr); } - return None; + return std::nullopt; } template <> @@ -123,7 +123,7 @@ ClangTidyCheck::OptionsView::getLocalOrGlobal<bool>(StringRef LocalName) const { return Result; diagnoseBadBooleanOption(Iter->getKey(), Iter->getValue().Value); } - return None; + return std::nullopt; } void ClangTidyCheck::OptionsView::store(ClangTidyOptions::OptionMap &Options, @@ -155,7 +155,7 @@ llvm::Optional<int64_t> ClangTidyCheck::OptionsView::getEnumInt( Context->getOptionsCollector()) : CheckOptions.find((NamePrefix + LocalName).str()); if (Iter == CheckOptions.end()) - return None; + return std::nullopt; StringRef Value = Iter->getValue().Value; StringRef Closest; @@ -182,7 +182,7 @@ llvm::Optional<int64_t> ClangTidyCheck::OptionsView::getEnumInt( diagnoseBadEnumOption(Iter->getKey(), Iter->getValue().Value, Closest); else diagnoseBadEnumOption(Iter->getKey(), Iter->getValue().Value); - return None; + return std::nullopt; } static constexpr llvm::StringLiteral ConfigWarning( diff --git a/clang-tools-extra/clang-tidy/ClangTidyCheck.h b/clang-tools-extra/clang-tidy/ClangTidyCheck.h index abf528d655972..cb5933652a480 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyCheck.h +++ b/clang-tools-extra/clang-tidy/ClangTidyCheck.h @@ -198,7 +198,7 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback { return Result; diagnoseBadIntegerOption(NamePrefix + LocalName, *Value); } - return None; + return std::nullopt; } /// Read a named option from the ``Context`` and parse it as an @@ -235,14 +235,14 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback { IsGlobal = true; ValueOr = getLocalOrGlobal(LocalName); if (!ValueOr) - return None; + return std::nullopt; } T Result{}; if (!StringRef(*ValueOr).getAsInteger(10, Result)) return Result; diagnoseBadIntegerOption( IsGlobal ? Twine(LocalName) : NamePrefix + LocalName, *ValueOr); - return None; + return std::nullopt; } /// Read a named option from the ``Context`` and parse it as an @@ -279,7 +279,7 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback { if (llvm::Optional<int64_t> ValueOr = getEnumInt(LocalName, typeEraseMapping<T>(), false, IgnoreCase)) return static_cast<T>(*ValueOr); - return None; + return std::nullopt; } /// Read a named option from the ``Context`` and parse it as an @@ -319,7 +319,7 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback { if (llvm::Optional<int64_t> ValueOr = getEnumInt(LocalName, typeEraseMapping<T>(), true, IgnoreCase)) return static_cast<T>(*ValueOr); - return None; + return std::nullopt; } /// Read a named option from the ``Context`` and parse it as an diff --git a/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp b/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp index 1660d976ff0be..e6b907038a7e1 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp @@ -258,7 +258,7 @@ void ClangTidyContext::setProfileStoragePrefix(StringRef Prefix) { llvm::Optional<ClangTidyProfiling::StorageParams> ClangTidyContext::getProfileStorageParams() const { if (ProfilePrefix.empty()) - return llvm::None; + return std::nullopt; return ClangTidyProfiling::StorageParams(ProfilePrefix, CurrentFile); } diff --git a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp index f07a8f9e893d8..c98ecb8bb29ad 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp @@ -147,7 +147,7 @@ ClangTidyOptions ClangTidyOptions::getDefaults() { Options.HeaderFilterRegex = ""; Options.SystemHeaders = false; Options.FormatStyle = "none"; - Options.User = llvm::None; + Options.User = std::nullopt; for (const ClangTidyModuleRegistry::entry &Module : ClangTidyModuleRegistry::entries()) Options.mergeWith(Module.instantiate()->getModuleOptions(), 0); @@ -368,7 +368,7 @@ FileOptionsBaseProvider::tryReadConfigFile(StringRef Directory) { if (!DirectoryStatus || !DirectoryStatus->isDirectory()) { llvm::errs() << "Error reading configuration from " << Directory << ": directory doesn't exist.\n"; - return llvm::None; + return std::nullopt; } for (const ConfigFileHandler &ConfigHandler : ConfigHandlers) { @@ -403,7 +403,7 @@ FileOptionsBaseProvider::tryReadConfigFile(StringRef Directory) { } return OptionsSource(*ParsedOptions, std::string(ConfigFile)); } - return llvm::None; + return std::nullopt; } /// Parses -line-filter option and stores it to the \c Options. diff --git a/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp b/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp index eb787154e4e4a..076e8fd2f625f 100644 --- a/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp +++ b/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp @@ -52,7 +52,7 @@ static Optional<NoLintType> strToNoLintType(StringRef Str) { .Case("NOLINTNEXTLINE", NoLintType::NoLintNextLine) .Case("NOLINTBEGIN", NoLintType::NoLintBegin) .Case("NOLINTEND", NoLintType::NoLintEnd) - .Default(None); + .Default(std::nullopt); return Type; } diff --git a/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp b/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp index dbc3cf2e6128f..17ec54e587b4e 100644 --- a/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp +++ b/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp @@ -30,7 +30,7 @@ getScaleForFactory(llvm::StringRef FactoryName) { .Case("Seconds", DurationScale::Seconds) .Case("Minutes", DurationScale::Minutes) .Case("Hours", DurationScale::Hours) - .Default(llvm::None); + .Default(std::nullopt); } // Given either an integer or float literal, return its value. @@ -89,7 +89,7 @@ getNewScaleSingleStep(DurationScale OldScale, double Multiplier) { break; } - return llvm::None; + return std::nullopt; } // Given the scale of a duration and a `Multiplier`, determine if `Multiplier` @@ -107,7 +107,7 @@ static llvm::Optional<DurationScale> getNewScale(DurationScale OldScale, OldScale = std::get<0>(*Result); } - return llvm::None; + return std::nullopt; } void DurationFactoryScaleCheck::registerMatchers(MatchFinder *Finder) { diff --git a/clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp b/clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp index 68e8bcf50c365..48000482ce240 100644 --- a/clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp +++ b/clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp @@ -31,11 +31,11 @@ truncateIfIntegral(const FloatingLiteral &FloatLiteral) { double Value = FloatLiteral.getValueAsApproximateDouble(); if (std::fmod(Value, 1) == 0) { if (Value >= static_cast<double>(1u << 31)) - return llvm::None; + return std::nullopt; return llvm::APSInt::get(static_cast<int64_t>(Value)); } - return llvm::None; + return std::nullopt; } const std::pair<llvm::StringRef, llvm::StringRef> & @@ -83,7 +83,7 @@ rewriteInverseDurationCall(const MatchFinder::MatchResult &Result, return tooling::fixit::getText(*MaybeCallArg, *Result.Context).str(); } - return llvm::None; + return std::nullopt; } /// If `Node` is a call to the inverse of `Scale`, return that inverse's @@ -99,7 +99,7 @@ rewriteInverseTimeCall(const MatchFinder::MatchResult &Result, return tooling::fixit::getText(*MaybeCallArg, *Result.Context).str(); } - return llvm::None; + return std::nullopt; } /// Returns the factory function name for a given `Scale`. @@ -201,7 +201,7 @@ stripFloatCast(const ast_matchers::MatchFinder::MatchResult &Result, Node, *Result.Context))) return tooling::fixit::getText(*MaybeCastArg, *Result.Context).str(); - return llvm::None; + return std::nullopt; } llvm::Optional<std::string> @@ -212,7 +212,7 @@ stripFloatLiteralFraction(const MatchFinder::MatchResult &Result, if (llvm::Optional<llvm::APSInt> IntValue = truncateIfIntegral(*LitFloat)) return toString(*IntValue, /*radix=*/10); - return llvm::None; + return std::nullopt; } std::string simplifyDurationFactoryArg(const MatchFinder::MatchResult &Result, @@ -247,7 +247,7 @@ llvm::Optional<DurationScale> getScaleForDurationInverse(llvm::StringRef Name) { auto ScaleIter = ScaleMap.find(std::string(Name)); if (ScaleIter == ScaleMap.end()) - return llvm::None; + return std::nullopt; return ScaleIter->second; } @@ -263,7 +263,7 @@ llvm::Optional<DurationScale> getScaleForTimeInverse(llvm::StringRef Name) { auto ScaleIter = ScaleMap.find(std::string(Name)); if (ScaleIter == ScaleMap.end()) - return llvm::None; + return std::nullopt; return ScaleIter->second; } diff --git a/clang-tools-extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp b/clang-tools-extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp index efb3faa7cff87..b73b1002763c5 100644 --- a/clang-tools-extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp +++ b/clang-tools-extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp @@ -45,11 +45,11 @@ llvm::Optional<std::string> makeCharacterLiteral(const StringLiteral *Literal, // Now replace the " with '. std::string::size_type Pos = Result.find_first_of('"'); if (Pos == Result.npos) - return llvm::None; + return std::nullopt; Result[Pos] = '\''; Pos = Result.find_last_of('"'); if (Pos == Result.npos) - return llvm::None; + return std::nullopt; Result[Pos] = '\''; return Result; } diff --git a/clang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp index cef7fd5935ffa..f1bfcc84c95f5 100644 --- a/clang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/BadSignalToKillThreadCheck.cpp @@ -36,17 +36,17 @@ void BadSignalToKillThreadCheck::check(const MatchFinder::MatchResult &Result) { const auto TryExpandAsInteger = [](Preprocessor::macro_iterator It) -> Optional<unsigned> { if (It == PP->macro_end()) - return llvm::None; + return std::nullopt; const MacroInfo *MI = PP->getMacroInfo(It->first); const Token &T = MI->tokens().back(); if (!T.isLiteral() || !T.getLiteralData()) - return llvm::None; + return std::nullopt; StringRef ValueStr = StringRef(T.getLiteralData(), T.getLength()); llvm::APInt IntValue; constexpr unsigned AutoSenseRadix = 0; if (ValueStr.getAsInteger(AutoSenseRadix, IntValue)) - return llvm::None; + return std::nullopt; return IntValue.getZExtValue(); }; diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index 0f6a97eb84851..ea3d64ef700e8 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -753,7 +753,7 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { auto MemcpyS = Match({"memcpy_s", 0, 2, 3, false}); // void *memchr(const void *src, int c, size_t count) - auto Memchr = Match({"memchr", None, 0, 2, false}); + auto Memchr = Match({"memchr", std::nullopt, 0, 2, false}); // void *memmove(void *dest, const void *src, size_t count) auto Memmove = Match({"memmove", 0, 1, 2, false}); @@ -762,14 +762,14 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { auto MemmoveS = Match({"memmove_s", 0, 2, 3, false}); // int strncmp(const char *str1, const char *str2, size_t count); - auto StrncmpRHS = Match({"strncmp", None, 1, 2, true}); - auto StrncmpLHS = Match({"strncmp", None, 0, 2, true}); + auto StrncmpRHS = Match({"strncmp", std::nullopt, 1, 2, true}); + auto StrncmpLHS = Match({"strncmp", std::nullopt, 0, 2, true}); // size_t strxfrm(char *dest, const char *src, size_t count); auto Strxfrm = Match({"strxfrm", 0, 1, 2, false}); // errno_t strerror_s(char *buffer, size_t bufferSize, int errnum); - auto StrerrorS = Match({"strerror_s", 0, None, 1, false}); + auto StrerrorS = Match({"strerror_s", 0, std::nullopt, 1, false}); auto AnyOfMatchers = anyOf(Memcpy, MemcpyS, Memmove, MemmoveS, StrncmpRHS, StrncmpLHS, Strxfrm, StrerrorS); diff --git a/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp index 75326e0ab1d19..90c1f7ecdc0ec 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp @@ -72,7 +72,7 @@ static Optional<std::string> getDoubleUnderscoreFixup(StringRef Name, const LangOptions &LangOpts) { if (hasReservedDoubleUnderscore(Name, LangOpts)) return collapseConsecutive(Name, '_'); - return None; + return std::nullopt; } static bool startsWithUnderscoreCapital(StringRef Name) { @@ -82,7 +82,7 @@ static bool startsWithUnderscoreCapital(StringRef Name) { static Optional<std::string> getUnderscoreCapitalFixup(StringRef Name) { if (startsWithUnderscoreCapital(Name)) return std::string(Name.drop_front(1)); - return None; + return std::nullopt; } static bool startsWithUnderscoreInGlobalNamespace(StringRef Name, @@ -94,7 +94,7 @@ static Optional<std::string> getUnderscoreGlobalNamespaceFixup(StringRef Name, bool IsInGlobalNamespace) { if (startsWithUnderscoreInGlobalNamespace(Name, IsInGlobalNamespace)) return std::string(Name.drop_front(1)); - return None; + return std::nullopt; } static std::string getNonReservedFixup(std::string Name) { @@ -112,7 +112,7 @@ getFailureInfoImpl(StringRef Name, bool IsInGlobalNamespace, ArrayRef<StringRef> AllowedIdentifiers) { assert(!Name.empty()); if (llvm::is_contained(AllowedIdentifiers, Name)) - return None; + return std::nullopt; // TODO: Check for names identical to language keywords, and other names // specifically reserved by language standards, e.g. C++ 'zombie names' and C @@ -149,7 +149,7 @@ getFailureInfoImpl(StringRef Name, bool IsInGlobalNamespace, startsWithUnderscoreCapital(Name) || startsWithUnderscoreInGlobalNamespace(Name, IsInGlobalNamespace))) return FailureInfo{NonReservedTag, getNonReservedFixup(std::string(Name))}; - return None; + return std::nullopt; } Optional<RenamerClangTidyCheck::FailureInfo> diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp index 830abda449b29..d731d7d169620 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp @@ -22,7 +22,7 @@ static llvm::Optional<uint64_t> tryEvaluateSizeExpr(const Expr *SizeExpr, if (SizeExpr->EvaluateAsRValue(Result, Ctx)) return Ctx.toBits( CharUnits::fromQuantity(Result.Val.getInt().getExtValue())); - return None; + return std::nullopt; } void SuspiciousMemoryComparisonCheck::registerMatchers(MatchFinder *Finder) { diff --git a/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp index b2f6b9ed62843..7137b78640ff2 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UncheckedOptionalAccessCheck.cpp @@ -46,7 +46,7 @@ analyzeFunction(const FunctionDecl &FuncDecl, ASTContext &ASTCtx) { Expected<ControlFlowContext> Context = ControlFlowContext::build(&FuncDecl, FuncDecl.getBody(), &ASTCtx); if (!Context) - return llvm::None; + return std::nullopt; dataflow::DataflowAnalysisContext AnalysisContext( std::make_unique<dataflow::WatchedLiteralsSolver>()); @@ -66,7 +66,7 @@ analyzeFunction(const FunctionDecl &FuncDecl, ASTContext &ASTCtx) { llvm::move(EltDiagnostics, std::back_inserter(Diagnostics)); }); if (!BlockToOutputState) - return llvm::None; + return std::nullopt; return Diagnostics; } diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/VirtualClassDestructorCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/VirtualClassDestructorCheck.cpp index 92b38bcfd81d1..2eb6e40d98638 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/VirtualClassDestructorCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/VirtualClassDestructorCheck.cpp @@ -51,7 +51,7 @@ static Optional<CharSourceRange> getVirtualKeywordRange(const CXXDestructorDecl &Destructor, const SourceManager &SM, const LangOptions &LangOpts) { if (Destructor.getLocation().isMacroID()) - return None; + return std::nullopt; SourceLocation VirtualBeginLoc = Destructor.getBeginLoc(); SourceLocation VirtualBeginSpellingLoc = @@ -63,7 +63,7 @@ getVirtualKeywordRange(const CXXDestructorDecl &Destructor, /// virtual is included. Optional<Token> NextToken = Lexer::findNextToken(VirtualEndLoc, SM, LangOpts); if (!NextToken) - return None; + return std::nullopt; SourceLocation StartOfNextToken = NextToken->getLocation(); return CharSourceRange::getCharRange(VirtualBeginLoc, StartOfNextToken); diff --git a/clang-tools-extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp b/clang-tools-extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp index 4c6d898d4cf77..f5ab332ff46a6 100644 --- a/clang-tools-extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp +++ b/clang-tools-extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp @@ -37,7 +37,7 @@ getNewMacroName(llvm::StringRef MacroName) { return Mapping.second; } - return llvm::None; + return std::nullopt; } namespace { diff --git a/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp b/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp index d6216000fe20f..5e3e05e88f0ca 100644 --- a/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp @@ -26,7 +26,7 @@ static llvm::Optional<const char *> getReplacementType(StringRef Type) { .Case("io_state", "iostate") .Case("open_mode", "openmode") .Case("seek_dir", "seekdir") - .Default(llvm::None); + .Default(std::nullopt); } void DeprecatedIosBaseAliasesCheck::registerMatchers(MatchFinder *Finder) { diff --git a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp index a3908514d615c..9dc90937d6e54 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp @@ -212,7 +212,7 @@ classifyToken(const FunctionDecl &F, Preprocessor &PP, Token Tok) { // If the Token/Macro contains more than one type of tokens, we would need // to split the macro in order to move parts to the trailing return type. if (ContainsQualifiers + ContainsSpecifiers + ContainsSomethingElse > 1) - return llvm::None; + return std::nullopt; return CT; } @@ -243,7 +243,7 @@ UseTrailingReturnTypeCheck::classifyTokensBeforeFunctionName( if (!MI || MI->isFunctionLike()) { // Cannot handle function style macros. diag(F.getLocation(), Message); - return llvm::None; + return std::nullopt; } } @@ -255,7 +255,7 @@ UseTrailingReturnTypeCheck::classifyTokensBeforeFunctionName( ClassifiedTokens.push_back(*CT); else { diag(F.getLocation(), Message); - return llvm::None; + return std::nullopt; } } diff --git a/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp b/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp index 793c6021c3981..bf3463e6dedf8 100644 --- a/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp +++ b/clang-tools-extra/clang-tidy/objc/NSInvocationArgumentLifetimeCheck.cpp @@ -57,7 +57,7 @@ fixItHintReplacementForOwnershipString(StringRef Text, CharSourceRange Range, StringRef Ownership) { size_t Index = Text.find(Ownership); if (Index == StringRef::npos) - return llvm::None; + return std::nullopt; SourceLocation Begin = Range.getBegin().getLocWithOffset(Index); SourceLocation End = Begin.getLocWithOffset(Ownership.size()); @@ -71,7 +71,7 @@ fixItHintForVarDecl(const VarDecl *VD, const SourceManager &SM, assert(VD && "VarDecl parameter must not be null"); // Don't provide fix-its for any parameter variables at this time. if (isa<ParmVarDecl>(VD)) - return llvm::None; + return std::nullopt; // Currently there is no way to directly get the source range for the // __weak/__strong ObjC lifetime qualifiers, so it's necessary to string @@ -81,7 +81,7 @@ fixItHintForVarDecl(const VarDecl *VD, const SourceManager &SM, if (Range.isInvalid()) { // An invalid range likely means inside a macro, in which case don't supply // a fix-it. - return llvm::None; + return std::nullopt; } StringRef VarDeclText = Lexer::getSourceText(Range, SM, LangOpts); diff --git a/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp b/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp index 6d74aa0a9be13..e16be632d7426 100644 --- a/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/FasterStringFindCheck.cpp @@ -30,11 +30,11 @@ llvm::Optional<std::string> makeCharacterLiteral(const StringLiteral *Literal) { // Now replace the " with '. auto Pos = Result.find_first_of('"'); if (Pos == Result.npos) - return llvm::None; + return std::nullopt; Result[Pos] = '\''; Pos = Result.find_last_of('"'); if (Pos == Result.npos) - return llvm::None; + return std::nullopt; Result[Pos] = '\''; return Result; } diff --git a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp index f37c1ef43291c..b76f4bb6973fe 100644 --- a/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp +++ b/clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp @@ -46,7 +46,7 @@ llvm::Optional<SourceLocation> firstLocAfterNewLine(SourceLocation Loc, bool Invalid; const char *TextAfter = SM.getCharacterData(Loc, &Invalid); if (Invalid) { - return llvm::None; + return std::nullopt; } size_t Offset = std::strcspn(TextAfter, "\n"); return Loc.getLocWithOffset(TextAfter[Offset] == '\0' ? Offset : Offset + 1); diff --git a/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp b/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp index 7d8bee4db96e5..412d0093b76b1 100644 --- a/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp @@ -28,7 +28,7 @@ static llvm::Optional<Token> findConstToRemove(const FunctionDecl *Def, const MatchFinder::MatchResult &Result) { if (!Def->getReturnType().isLocalConstQualified()) - return None; + return std::nullopt; // Get the begin location for the function name, including any qualifiers // written in the source (for out-of-line declarations). A FunctionDecl's @@ -45,7 +45,7 @@ findConstToRemove(const FunctionDecl *Def, *Result.SourceManager, Result.Context->getLangOpts()); if (FileRange.isInvalid()) - return None; + return std::nullopt; return utils::lexer::getQualifyingToken( tok::kw_const, FileRange, *Result.Context, *Result.SourceManager); diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp index c0387886d9410..2cd40ed774a8a 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp @@ -1361,14 +1361,14 @@ IdentifierNamingCheck::getFailureInfo( const IdentifierNamingCheck::HungarianNotationOption &HNOption, StyleKind SK, const SourceManager &SM, bool IgnoreFailedSplit) const { if (SK == SK_Invalid || !NamingStyles[SK]) - return None; + return std::nullopt; const IdentifierNamingCheck::NamingStyle &Style = *NamingStyles[SK]; if (Style.IgnoredRegexp.isValid() && Style.IgnoredRegexp.match(Name)) - return None; + return std::nullopt; if (matchesStyle(Type, Name, Style, HNOption, ND)) - return None; + return std::nullopt; std::string KindName = fixupWithCase(Type, StyleNames[SK], ND, Style, HNOption, @@ -1383,7 +1383,7 @@ IdentifierNamingCheck::getFailureInfo( << llvm::formatv(": unable to split words for {0} '{1}'\n", KindName, Name)); } - return None; + return std::nullopt; } return RenamerClangTidyCheck::FailureInfo{std::move(KindName), std::move(Fixup)}; @@ -1395,7 +1395,7 @@ IdentifierNamingCheck::getDeclFailureInfo(const NamedDecl *Decl, SourceLocation Loc = Decl->getLocation(); const FileStyle &FileStyle = getStyleForFile(SM.getFilename(Loc)); if (!FileStyle.isActive()) - return llvm::None; + return std::nullopt; return getFailureInfo(HungarianNotation.getDeclTypeName(Decl), Decl->getName(), Decl, Loc, FileStyle.getStyles(), @@ -1411,7 +1411,7 @@ IdentifierNamingCheck::getMacroFailureInfo(const Token &MacroNameTok, SourceLocation Loc = MacroNameTok.getLocation(); const FileStyle &Style = getStyleForFile(SM.getFilename(Loc)); if (!Style.isActive()) - return llvm::None; + return std::nullopt; return getFailureInfo("", MacroNameTok.getIdentifierInfo()->getName(), nullptr, Loc, Style.getStyles(), Style.getHNOption(), diff --git a/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp index 38e4272388642..45f3ea6c68125 100644 --- a/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp @@ -110,10 +110,10 @@ declRanges(const DeclStmt *DS, const SourceManager &SM, const LangOptions &LangOpts) { std::size_t DeclCount = std::distance(DS->decl_begin(), DS->decl_end()); if (DeclCount < 2) - return None; + return std::nullopt; if (rangeContainsExpansionsOrDirectives(DS->getSourceRange(), SM, LangOpts)) - return None; + return std::nullopt; // The initial type of the declaration and each declaration has it's own // slice. This is necessary, because pointers and references bind only @@ -127,12 +127,12 @@ declRanges(const DeclStmt *DS, const SourceManager &SM, const auto *FirstDecl = dyn_cast<VarDecl>(*DS->decl_begin()); if (FirstDecl == nullptr) - return None; + return std::nullopt; // FIXME: Member pointers are not transformed correctly right now, that's // why they are treated as problematic here. if (typeIsMemberPointer(FirstDecl->getType().IgnoreParens().getTypePtr())) - return None; + return std::nullopt; // Consider the following case: 'int * pointer, value = 42;' // Created slices (inclusive) [ ][ ] [ ] @@ -168,7 +168,7 @@ declRanges(const DeclStmt *DS, const SourceManager &SM, SourceRange DeclRange(DS->getBeginLoc(), Start); if (DeclRange.isInvalid() || isMacroID(DeclRange)) - return None; + return std::nullopt; // The first slice, that is prepended to every isolated declaration, is // created. @@ -182,7 +182,7 @@ declRanges(const DeclStmt *DS, const SourceManager &SM, // FIXME: Member pointers are not transformed correctly right now, that's // why they are treated as problematic here. if (typeIsMemberPointer(CurrentDecl->getType().IgnoreParens().getTypePtr())) - return None; + return std::nullopt; SourceLocation DeclEnd = CurrentDecl->hasInit() @@ -192,7 +192,7 @@ declRanges(const DeclStmt *DS, const SourceManager &SM, SourceRange VarNameRange(DeclBegin, DeclEnd); if (VarNameRange.isInvalid() || isMacroID(VarNameRange)) - return None; + return std::nullopt; Slices.emplace_back(VarNameRange); DeclBegin = DeclEnd.getLocWithOffset(1); @@ -212,14 +212,14 @@ collectSourceRanges(llvm::ArrayRef<SourceRange> Ranges, const SourceManager &SM, LangOpts); if (CharRange.isInvalid()) - return None; + return std::nullopt; bool InvalidText = false; StringRef Snippet = Lexer::getSourceText(CharRange, SM, LangOpts, &InvalidText); if (InvalidText) - return None; + return std::nullopt; Snippets.emplace_back(Snippet); } diff --git a/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp b/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp index 2de4ccd1b4efa..7ee48389c3c13 100644 --- a/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp @@ -73,7 +73,7 @@ getNamespaceNameAsWritten(SourceLocation &Loc, const SourceManager &Sources, } else if (T->is(tok::coloncolon)) { Result.append("::"); } else { // Any other kind of token is unexpected here. - return llvm::None; + return std::nullopt; } } } diff --git a/clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp b/clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp index c564b5adcbbf8..e25d1474ffdd0 100644 --- a/clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp @@ -48,7 +48,7 @@ llvm::Optional<Token> findQualToken(const VarDecl *Decl, Qualifier Qual, Result.Context->getLangOpts()); if (FileRange.isInvalid()) - return llvm::None; + return std::nullopt; tok::TokenKind Tok = Qual == Qualifier::Const @@ -70,7 +70,7 @@ getTypeSpecifierLocation(const VarDecl *Var, if (TypeSpecifier.getBegin().isMacroID() || TypeSpecifier.getEnd().isMacroID()) - return llvm::None; + return std::nullopt; return TypeSpecifier; } @@ -78,11 +78,11 @@ llvm::Optional<SourceRange> mergeReplacementRange(SourceRange &TypeSpecifier, const Token &ConstToken) { if (TypeSpecifier.getBegin().getLocWithOffset(-1) == ConstToken.getEndLoc()) { TypeSpecifier.setBegin(ConstToken.getLocation()); - return llvm::None; + return std::nullopt; } if (TypeSpecifier.getEnd().getLocWithOffset(1) == ConstToken.getLocation()) { TypeSpecifier.setEnd(ConstToken.getEndLoc()); - return llvm::None; + return std::nullopt; } return SourceRange(ConstToken.getLocation(), ConstToken.getEndLoc()); } diff --git a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp index a6e71e6afae55..d1537eba99f7d 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp @@ -50,7 +50,7 @@ getConstructExprArgRange(const CXXConstructExpr &Construct) { E = Arg->getEndLoc(); } if (B.isInvalid() || E.isInvalid()) - return llvm::None; + return std::nullopt; return SourceRange(B, E); } diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp index d78b5c53a10dc..1f1d605175a3f 100644 --- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp @@ -300,18 +300,18 @@ class SimplifyBooleanExprCheck::Visitor : public RecursiveASTVisitor<Visitor> { static Optional<bool> getAsBoolLiteral(const Expr *E, bool FilterMacro) { if (const auto *Bool = dyn_cast<CXXBoolLiteralExpr>(E)) { if (FilterMacro && Bool->getBeginLoc().isMacroID()) - return llvm::None; + return std::nullopt; return Bool->getValue(); } if (const auto *UnaryOp = dyn_cast<UnaryOperator>(E)) { if (FilterMacro && UnaryOp->getBeginLoc().isMacroID()) - return None; + return std::nullopt; if (UnaryOp->getOpcode() == UO_LNot) if (Optional<bool> Res = getAsBoolLiteral( UnaryOp->getSubExpr()->IgnoreImplicit(), FilterMacro)) return !*Res; } - return llvm::None; + return std::nullopt; } template <typename Node> struct NodeAndBool { diff --git a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp index 4841da5673506..2a5e614584fb9 100644 --- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp @@ -587,7 +587,7 @@ Optional<int8_t> SuspiciousCallArgumentCheck::getBound(Heuristic H, assert(Idx < HeuristicCount); if (!Defaults[Idx].hasBounds()) - return None; + return std::nullopt; switch (BK) { case BoundKind::DissimilarBelow: diff --git a/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp b/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp index 0b1f3ddbe0c2f..ee760f7c1ade7 100644 --- a/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp @@ -67,11 +67,11 @@ llvm::Optional<SourceLocation> getMacroAwareLocation(SourceLocation Loc, const SourceManager &SM) { // Do nothing if the provided location is invalid. if (Loc.isInvalid()) - return llvm::None; + return std::nullopt; // Look where the location was *actually* written. SourceLocation SpellingLoc = SM.getSpellingLoc(Loc); if (SpellingLoc.isInvalid()) - return llvm::None; + return std::nullopt; return SpellingLoc; } @@ -81,7 +81,7 @@ llvm::Optional<SourceRange> getMacroAwareSourceRange(SourceRange Loc, getMacroAwareLocation(Loc.getBegin(), SM); llvm::Optional<SourceLocation> End = getMacroAwareLocation(Loc.getEnd(), SM); if (!Begin || !End) - return llvm::None; + return std::nullopt; return SourceRange(*Begin, *End); } @@ -100,7 +100,7 @@ getNewSuffix(llvm::StringRef OldSuffix, if (NewSuffix != NewSuffixes.end()) return NewSuffix->str(); // Nope, I guess we have to keep it as-is. - return llvm::None; + return std::nullopt; } template <typename LiteralType> @@ -123,7 +123,7 @@ shouldReplaceLiteralSuffix(const Expr &Literal, llvm::Optional<SourceRange> Range = getMacroAwareSourceRange(ReplacementDsc.LiteralLocation, SM); if (!Range) - return llvm::None; + return std::nullopt; if (RangeCanBeFixed) ReplacementDsc.LiteralLocation = *Range; @@ -138,7 +138,7 @@ shouldReplaceLiteralSuffix(const Expr &Literal, // Make sure the first character is actually a digit, instead of // something else, like a non-type template parameter. if (!std::isdigit(static_cast<unsigned char>(LiteralSourceText.front()))) - return llvm::None; + return std::nullopt; size_t Skip = 0; @@ -161,7 +161,7 @@ shouldReplaceLiteralSuffix(const Expr &Literal, // We can't check whether the *Literal has any suffix or not without actually // looking for the suffix. So it is totally possible that there is no suffix. if (Skip == StringRef::npos) - return llvm::None; + return std::nullopt; // Move the cursor in the source range to the beginning of the suffix. Range->setBegin(Range->getBegin().getLocWithOffset(Skip)); @@ -174,7 +174,7 @@ shouldReplaceLiteralSuffix(const Expr &Literal, llvm::Optional<std::string> NewSuffix = getNewSuffix(ReplacementDsc.OldSuffix, NewSuffixes); if (!NewSuffix || ReplacementDsc.OldSuffix == *NewSuffix) - return llvm::None; // The suffix was already the way it should be. + return std::nullopt; // The suffix was already the way it should be. if (RangeCanBeFixed) ReplacementDsc.FixIt = FixItHint::CreateReplacement(*Range, *NewSuffix); diff --git a/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp b/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp index f7b4c3ef57938..07c9eb0f00985 100644 --- a/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp +++ b/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp @@ -57,10 +57,10 @@ llvm::Optional<StringRef> getFileExtension(StringRef FileName, const FileExtensionsSet &FileExtensions) { StringRef Extension = llvm::sys::path::extension(FileName); if (Extension.empty()) - return llvm::None; + return std::nullopt; // Skip "." prefix. if (!FileExtensions.count(Extension.substr(1))) - return llvm::None; + return std::nullopt; return Extension; } diff --git a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp index dd7c24d0c7ef7..546efd5ce5a29 100644 --- a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp +++ b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp @@ -44,7 +44,7 @@ static bool locDangerous(SourceLocation S) { static Optional<SourceLocation> skipLParensBackwards(SourceLocation Start, const ASTContext &Context) { if (locDangerous(Start)) - return None; + return std::nullopt; auto PreviousTokenLParen = [&Start, &Context]() { Token T; @@ -58,14 +58,14 @@ skipLParensBackwards(SourceLocation Start, const ASTContext &Context) { Context.getLangOpts()); if (locDangerous(Start)) - return None; + return std::nullopt; return Start; } static Optional<FixItHint> fixIfNotDangerous(SourceLocation Loc, StringRef Text) { if (locDangerous(Loc)) - return None; + return std::nullopt; return FixItHint::CreateInsertion(Loc, Text); } @@ -93,7 +93,7 @@ static Optional<FixItHint> changeValue(const VarDecl &Var, if (IgnoredParens) return fixIfNotDangerous(*IgnoredParens, buildQualifier(Qualifier)); - return None; + return std::nullopt; } llvm_unreachable("Unknown QualifierPolicy enum"); } @@ -102,13 +102,13 @@ static Optional<FixItHint> changePointerItself(const VarDecl &Var, DeclSpec::TQ Qualifier, const ASTContext &Context) { if (locDangerous(Var.getLocation())) - return None; + return std::nullopt; Optional<SourceLocation> IgnoredParens = skipLParensBackwards(Var.getLocation(), Context); if (IgnoredParens) return fixIfNotDangerous(*IgnoredParens, buildQualifier(Qualifier)); - return None; + return std::nullopt; } static Optional<FixItHint> @@ -136,7 +136,7 @@ changePointer(const VarDecl &Var, DeclSpec::TQ Qualifier, const Type *Pointee, Var.getLocation(), Context.getSourceManager(), Context.getLangOpts(), tok::star); if (locDangerous(BeforeStar)) - return None; + return std::nullopt; Optional<SourceLocation> IgnoredParens = skipLParensBackwards(BeforeStar, Context); @@ -144,7 +144,7 @@ changePointer(const VarDecl &Var, DeclSpec::TQ Qualifier, const Type *Pointee, if (IgnoredParens) return fixIfNotDangerous(*IgnoredParens, buildQualifier(Qualifier, true)); - return None; + return std::nullopt; } } @@ -159,7 +159,7 @@ changePointer(const VarDecl &Var, DeclSpec::TQ Qualifier, const Type *Pointee, return fixIfNotDangerous(BeforeStar, buildQualifier(Qualifier, true)); } - return None; + return std::nullopt; } static Optional<FixItHint> @@ -178,7 +178,7 @@ changeReferencee(const VarDecl &Var, DeclSpec::TQ Qualifier, QualType Pointee, if (IgnoredParens) return fixIfNotDangerous(*IgnoredParens, buildQualifier(Qualifier, true)); - return None; + return std::nullopt; } Optional<FixItHint> addQualifierToVarDecl(const VarDecl &Var, @@ -221,7 +221,7 @@ Optional<FixItHint> addQualifierToVarDecl(const VarDecl &Var, QualTarget, QualPolicy, Context); } - return None; + return std::nullopt; } } // namespace fixit } // namespace utils diff --git a/clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp b/clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp index 144ebdf5dbbfe..08bbe9deca406 100644 --- a/clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp +++ b/clang-tools-extra/clang-tidy/utils/IncludeInserter.cpp @@ -71,13 +71,13 @@ llvm::Optional<FixItHint> IncludeInserter::createIncludeInsertion(FileID FileID, llvm::StringRef Header) { bool IsAngled = Header.consume_front("<"); if (IsAngled != Header.consume_back(">")) - return llvm::None; + return std::nullopt; // We assume the same Header will never be included both angled and not // angled. // In self contained diags mode we don't track what headers we have already // inserted. if (!SelfContainedDiags && !InsertedHeaders[FileID].insert(Header).second) - return llvm::None; + return std::nullopt; return getOrCreate(FileID).createIncludeInsertion(Header, IsAngled); } diff --git a/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp b/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp index 8d620ca3af681..fc26d966c88ef 100644 --- a/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp +++ b/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp @@ -179,7 +179,7 @@ Optional<FixItHint> IncludeSorter::createIncludeInsertion(StringRef FileName, return FixItHint::CreateInsertion(Location.getBegin(), IncludeStmt); } if (FileName == IncludeEntry) { - return llvm::None; + return std::nullopt; } } // FileName comes after all include entries in bucket, insert it after @@ -203,7 +203,7 @@ Optional<FixItHint> IncludeSorter::createIncludeInsertion(StringRef FileName, } } if (NonEmptyKind == IK_InvalidInclude) { - return llvm::None; + return std::nullopt; } if (NonEmptyKind < IncludeKind) { diff --git a/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp b/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp index f769db8840f79..6ab48afc7d20a 100644 --- a/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp +++ b/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp @@ -138,7 +138,7 @@ llvm::Optional<Token> getQualifyingToken(tok::TokenKind TK, if (Tok.is(tok::less)) SawTemplate = true; else if (Tok.isOneOf(tok::greater, tok::greatergreater)) - LastMatchAfterTemplate = None; + LastMatchAfterTemplate = std::nullopt; else if (Tok.is(TK)) { if (SawTemplate) LastMatchAfterTemplate = Tok; @@ -146,8 +146,8 @@ llvm::Optional<Token> getQualifyingToken(tok::TokenKind TK, LastMatchBeforeTemplate = Tok; } } - return LastMatchAfterTemplate != None ? LastMatchAfterTemplate - : LastMatchBeforeTemplate; + return LastMatchAfterTemplate != std::nullopt ? LastMatchAfterTemplate + : LastMatchBeforeTemplate; } static bool breakAndReturnEnd(const Stmt &S) { diff --git a/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp b/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp index 82f103a02771e..fcefdc32024ca 100644 --- a/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp +++ b/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp @@ -32,10 +32,10 @@ NamespaceAliaser::createAlias(ASTContext &Context, const Stmt &Statement, const std::vector<std::string> &Abbreviations) { const FunctionDecl *Function = getSurroundingFunction(Context, Statement); if (!Function || !Function->hasBody()) - return None; + return std::nullopt; if (AddedAliases[Function].count(Namespace.str()) != 0) - return None; + return std::nullopt; // FIXME: Doesn't consider the order of declarations. // If we accidentally pick an alias defined later in the function, @@ -51,7 +51,7 @@ NamespaceAliaser::createAlias(ASTContext &Context, const Stmt &Statement, if (ExistingAlias != nullptr) { AddedAliases[Function][Namespace.str()] = ExistingAlias->getName().str(); - return None; + return std::nullopt; } for (const auto &Abbreviation : Abbreviations) { @@ -75,7 +75,7 @@ NamespaceAliaser::createAlias(ASTContext &Context, const Stmt &Statement, return FixItHint::CreateInsertion(Loc, Declaration); } - return None; + return std::nullopt; } std::string NamespaceAliaser::getNamespaceName(ASTContext &Context, diff --git a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp index ba1f4d4ebe2ef..449b0569537c2 100644 --- a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp +++ b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp @@ -258,12 +258,12 @@ NameLookup findDeclInBases(const CXXRecordDecl &Parent, StringRef DeclName, if (*Search) { if (Found) return NameLookup( - llvm::None); // Multiple decls found in diff erent base classes. + std::nullopt); // Multiple decls found in diff erent base classes. Found = *Search; continue; } } else - return NameLookup(llvm::None); // Propagate multiple resolution back up. + return NameLookup(std::nullopt); // Propagate multiple resolution back up. } return NameLookup(Found); // If nullptr, decl wasn't found. } diff --git a/clang-tools-extra/clang-tidy/utils/TypeTraits.cpp b/clang-tools-extra/clang-tidy/utils/TypeTraits.cpp index 0735587766559..ef897da98146c 100644 --- a/clang-tools-extra/clang-tidy/utils/TypeTraits.cpp +++ b/clang-tools-extra/clang-tidy/utils/TypeTraits.cpp @@ -41,7 +41,7 @@ bool hasDeletedCopyConstructor(QualType Type) { llvm::Optional<bool> isExpensiveToCopy(QualType Type, const ASTContext &Context) { if (Type->isDependentType() || Type->isIncompleteType()) - return llvm::None; + return std::nullopt; return !Type.isTriviallyCopyableType(Context) && !classHasTrivialCopyAndDestroy(Type) && !hasDeletedCopyConstructor(Type) && diff --git a/clang-tools-extra/clang-tidy/utils/UsingInserter.cpp b/clang-tools-extra/clang-tidy/utils/UsingInserter.cpp index e852532af418d..480612c9140c2 100644 --- a/clang-tools-extra/clang-tidy/utils/UsingInserter.cpp +++ b/clang-tools-extra/clang-tidy/utils/UsingInserter.cpp @@ -34,17 +34,17 @@ Optional<FixItHint> UsingInserter::createUsingDeclaration( StringRef UnqualifiedName = getUnqualifiedName(QualifiedName); const FunctionDecl *Function = getSurroundingFunction(Context, Statement); if (!Function) - return None; + return std::nullopt; if (AddedUsing.count(std::make_pair(Function, QualifiedName.str())) != 0) - return None; + return std::nullopt; SourceLocation InsertLoc = Lexer::getLocForEndOfToken( Function->getBody()->getBeginLoc(), 0, SourceMgr, Context.getLangOpts()); // Only use using declarations in the main file, not in includes. if (SourceMgr.getFileID(InsertLoc) != SourceMgr.getMainFileID()) - return None; + return std::nullopt; // FIXME: This declaration could be masked. Investigate if // there is a way to avoid using Sema. @@ -55,7 +55,7 @@ Optional<FixItHint> UsingInserter::createUsingDeclaration( .empty(); if (AlreadyHasUsingDecl) { AddedUsing.emplace(NameInFunction(Function, QualifiedName.str())); - return None; + return std::nullopt; } // Find conflicting declarations and references. auto ConflictingDecl = namedDecl(hasName(UnqualifiedName)); @@ -65,7 +65,7 @@ Optional<FixItHint> UsingInserter::createUsingDeclaration( !match(findAll(declRefExpr(to(ConflictingDecl))), *Function, Context) .empty(); if (HasConflictingDeclaration || HasConflictingDeclRef) - return None; + return std::nullopt; std::string Declaration = (llvm::Twine("\nusing ") + QualifiedName + ";").str(); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits