Use std::optional instead of llvm::Optional

Note that llvm::Optional is just an alias for std::optional these days
and has since been deprecated upstream in favor of std::optional.

PiperOrigin-RevId: 513248484
diff --git a/nullability_verification/pointer_nullability_diagnosis.h b/nullability_verification/pointer_nullability_diagnosis.h
index a4785f3..5551f2d 100644
--- a/nullability_verification/pointer_nullability_diagnosis.h
+++ b/nullability_verification/pointer_nullability_diagnosis.h
@@ -5,12 +5,13 @@
 #ifndef CRUBIT_NULLABILITY_VERIFICATION_POINTER_NULLABILITY_DIAGNOSIS_H_
 #define CRUBIT_NULLABILITY_VERIFICATION_POINTER_NULLABILITY_DIAGNOSIS_H_
 
+#include <optional>
+
 #include "nullability_verification/pointer_nullability_lattice.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/Stmt.h"
 #include "clang/Analysis/FlowSensitive/CFGMatchSwitch.h"
 #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
-#include "llvm/ADT/Optional.h"
 
 namespace clang {
 namespace tidy {
@@ -31,7 +32,7 @@
   ///
   /// TODO(b/233582219): Extend diagnosis to return more information, e.g. the
   /// type of violation.
-  llvm::Optional<CFGElement> diagnose(
+  std::optional<CFGElement> diagnose(
       const CFGElement* Elt, ASTContext& Ctx,
       const dataflow::TransferStateForDiagnostics<PointerNullabilityLattice>&
           State) {
@@ -41,7 +42,7 @@
  private:
   dataflow::CFGMatchSwitch<
       const dataflow::TransferStateForDiagnostics<PointerNullabilityLattice>,
-      llvm::Optional<CFGElement>>
+      std::optional<CFGElement>>
       Diagnoser;
 };
 
diff --git a/rs_bindings_from_cc/importer.cc b/rs_bindings_from_cc/importer.cc
index 2791d0c..c032a68 100644
--- a/rs_bindings_from_cc/importer.cc
+++ b/rs_bindings_from_cc/importer.cc
@@ -49,7 +49,6 @@
 #include "clang/Basic/SourceManager.h"
 #include "clang/Basic/Specifiers.h"
 #include "clang/Sema/Sema.h"
-#include "llvm/ADT/Optional.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/FormatVariadic.h"
@@ -586,7 +585,7 @@
       source_location = source_manager.getExpansionLoc(source_location);
     }
     auto id = source_manager.getFileID(source_location);
-    llvm::Optional<llvm::StringRef> filename =
+    std::optional<llvm::StringRef> filename =
         source_manager.getNonBuiltinFilenameForID(id);
     if (!filename) {
       return BazelLabel("//:_nothing_should_depend_on_private_builtin_hdrs");
diff --git a/rs_bindings_from_cc/importers/function.cc b/rs_bindings_from_cc/importers/function.cc
index 864eace..9656fbd 100644
--- a/rs_bindings_from_cc/importers/function.cc
+++ b/rs_bindings_from_cc/importers/function.cc
@@ -88,7 +88,7 @@
   // annotations found.  This will allow avoiding the call to
   // `expectedToOptional` which can sometimes indicate design problems.
   clang::tidy::lifetimes::LifetimeSymbolTable lifetime_symbol_table;
-  llvm::Optional<clang::tidy::lifetimes::FunctionLifetimes> lifetimes =
+  std::optional<clang::tidy::lifetimes::FunctionLifetimes> lifetimes =
       expectedToOptional(clang::tidy::lifetimes::GetLifetimeAnnotations(
           function_decl, *ictx_.invocation_.lifetime_context_,
           &lifetime_symbol_table));
diff --git a/rs_bindings_from_cc/ir.h b/rs_bindings_from_cc/ir.h
index f039abb..9a5f0a6 100644
--- a/rs_bindings_from_cc/ir.h
+++ b/rs_bindings_from_cc/ir.h
@@ -32,7 +32,6 @@
 #include "clang/AST/DeclTemplate.h"
 #include "clang/AST/RawCommentList.h"
 #include "llvm/ADT/APSInt.h"
-#include "llvm/ADT/Optional.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/JSON.h"