Add non-flow-sensitive support for array types

Nullability vector extraction and printing
Transfer on array indexing (this doesn't involve array types, apparently!)

PiperOrigin-RevId: 528767784
diff --git a/nullability/pointer_nullability_analysis.cc b/nullability/pointer_nullability_analysis.cc
index bacba41..93b735b 100644
--- a/nullability/pointer_nullability_analysis.cc
+++ b/nullability/pointer_nullability_analysis.cc
@@ -603,6 +603,16 @@
   });
 }
 
+void transferNonFlowSensitiveArraySubscriptExpr(
+    const ArraySubscriptExpr* ASE, const MatchFinder::MatchResult& MR,
+    TransferState<PointerNullabilityLattice>& State) {
+  computeNullability(ASE, State, [&]() {
+    auto BaseNullability = getNullabilityForChild(ASE->getBase(), State);
+    CHECK(ASE->getBase()->getType()->isAnyPointerType());
+    return BaseNullability.slice(1).vec();
+  });
+}
+
 auto buildNonFlowSensitiveTransferer() {
   return CFGMatchSwitchBuilder<TransferState<PointerNullabilityLattice>>()
       .CaseOfCFGStmt<DeclRefExpr>(ast_matchers::declRefExpr(),
@@ -622,6 +632,9 @@
                                     transferNonFlowSensitiveUnaryOperator)
       .CaseOfCFGStmt<CXXNewExpr>(ast_matchers::cxxNewExpr(),
                                  transferNonFlowSensitiveNewExpr)
+      .CaseOfCFGStmt<ArraySubscriptExpr>(
+          ast_matchers::arraySubscriptExpr(),
+          transferNonFlowSensitiveArraySubscriptExpr)
       .Build();
 }