diff --git a/.github/bin/run-build-cleaner.sh b/.github/bin/run-build-cleaner.sh
index b8d1af5..d5b03f7 100755
--- a/.github/bin/run-build-cleaner.sh
+++ b/.github/bin/run-build-cleaner.sh
@@ -18,6 +18,10 @@
 
 BANT=$($(dirname $0)/get-bant-path.sh)
 
+# Run build so that we have all dependencies downloaded and genrules
+# materialized.
+bazel build -k --remote_download_outputs=all ...
+
 if "${BANT}" -q dwyu ... ; then
   echo "Dependencies ok." >&2
 else
diff --git a/MODULE.bazel b/MODULE.bazel
index 463c634..724056c 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -20,4 +20,4 @@
 bazel_dep(name = "googletest", version = "1.17.0.bcr.2", dev_dependency = True)
 
 # To build compilation DB and run build-cleaning
-bazel_dep(name = "bant", version = "0.3.4", dev_dependency = True)
+bazel_dep(name = "bant", version = "0.3.6", dev_dependency = True)
diff --git a/verible/verilog/formatting/BUILD b/verible/verilog/formatting/BUILD
index eb089df..6e4782e 100644
--- a/verible/verilog/formatting/BUILD
+++ b/verible/verilog/formatting/BUILD
@@ -193,77 +193,118 @@
     ],
 )
 
-_FORMATTER_E2E_TEST_DEPS = [
-    ":format-style",
-    ":formatter",
-    ":formatter-test-utils",
-    "//verible/common/formatting:align",
-    "//verible/common/formatting:basic-format-style",
-    "//verible/common/strings:display-utils",
-    "//verible/common/strings:position",
-    "//verible/common/text:text-structure",
-    "//verible/common/util:interval",
-    "//verible/common/util:logging",
-    "//verible/verilog/analysis:verilog-analyzer",
-    "@abseil-cpp//absl/log:die_if_null",
-    "@abseil-cpp//absl/status",
-    "@abseil-cpp//absl/strings",
-    "@googletest//:gtest",
-    "@googletest//:gtest_main",
-]
-
 cc_test(
     name = "formatter_test",
     srcs = ["formatter_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":format-style",
+        ":formatter",
+        ":formatter-test-utils",
+        "//verible/common/text:text-structure",
+        "//verible/common/util:logging",
+        "//verible/verilog/analysis:verilog-analyzer",
+        "@abseil-cpp//absl/log:die_if_null",
+        "@abseil-cpp//absl/status",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_macro_test",
     srcs = ["formatter_macro_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":formatter-test-utils",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_module_test",
     srcs = ["formatter_module_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":formatter-test-utils",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_class_package_test",
     srcs = ["formatter_class_package_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":formatter-test-utils",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_function_task_test",
     srcs = ["formatter_function_task_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":formatter-test-utils",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_align_test",
     srcs = ["formatter_align_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":format-style",
+        ":formatter",
+        ":formatter-test-utils",
+        "//verible/common/formatting:align",
+        "//verible/common/util:logging",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_wrap_style_test",
     srcs = ["formatter_wrap_style_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":format-style",
+        ":formatter",
+        ":formatter-test-utils",
+        "//verible/common/formatting:align",
+        "//verible/common/formatting:basic-format-style",
+        "//verible/common/strings:display-utils",
+        "//verible/common/strings:position",
+        "//verible/common/util:interval",
+        "//verible/common/util:logging",
+        "@abseil-cpp//absl/status",
+        "@abseil-cpp//absl/strings",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_disable_test",
     srcs = ["formatter_disable_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":formatter-test-utils",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
     name = "formatter_issue_regression_test",
     srcs = ["formatter_issue_regression_test.cc"],
-    deps = _FORMATTER_E2E_TEST_DEPS,
+    deps = [
+        ":format-style",
+        ":formatter",
+        ":formatter-test-utils",
+        "//verible/common/util:logging",
+        "@googletest//:gtest",
+        "@googletest//:gtest_main",
+    ],
 )
 
 cc_test(
diff --git a/verible/verilog/formatting/formatter_function_task_test.cc b/verible/verilog/formatting/formatter_function_task_test.cc
index 88e30bb..74db8f5 100644
--- a/verible/verilog/formatting/formatter_function_task_test.cc
+++ b/verible/verilog/formatting/formatter_function_task_test.cc
@@ -190,7 +190,7 @@
      "function\nvoid\tpete;repeat(3)  "
      "++k\n;endfunction\n",
      "function void pete;\n"
-     "  repeat (3)++k;\n"  // TODO(fangism): space before ++
+     "  repeat (3) ++k;\n"
      "endfunction\n"},
     {// repeat loop, forced break
      "function\nvoid\tpete;repeat(3)//\n"
@@ -211,7 +211,7 @@
      "function\nvoid\twily;while( coyote )  "
      "++ super_genius\n;   endfunction\n",
      "function void wily;\n"
-     "  while (coyote)++super_genius;\n"  // TODO(fangism): space before ++
+     "  while (coyote) ++super_genius;\n"
      "endfunction\n"},
     {// while loop, forced break
      "function\nvoid\twily;while( coyote ) //\n "
@@ -1841,6 +1841,14 @@
         "endtask\n",
     },
     {
+        // assert property statement, with prefix inc/dec
+        "task  t ;assert  property( x) ++j; else --k;endtask",
+        "task t;\n"
+        "  assert property (x) ++j;\n"
+        "  else --k;\n"
+        "endtask\n",
+    },
+    {
         // assert property statements, with action block
         "task  t ;assert  property( x) begin j();end "
         " assert\tproperty(y )begin\tk( );  end endtask",
diff --git a/verible/verilog/formatting/formatter_module_test.cc b/verible/verilog/formatting/formatter_module_test.cc
index 4290e5e..f6e142b 100644
--- a/verible/verilog/formatting/formatter_module_test.cc
+++ b/verible/verilog/formatting/formatter_module_test.cc
@@ -2794,6 +2794,36 @@
         "endmodule\n",
     },
     {
+        // prefix increment/decrement as statement after a ')'
+        "module m ;function automatic void f;"
+        "if(a==8'ha0)++result; if(b==8'ha0)--result;"
+        "i++; j--; c[i]++;"
+        "endfunction endmodule",
+        "module m;\n"
+        "  function automatic void f;\n"
+        "    if (a == 8'ha0) ++result;\n"
+        "    if (b == 8'ha0) --result;\n"
+        "    i++;\n"
+        "    j--;\n"
+        "    c[i]++;\n"
+        "  endfunction\n"
+        "endmodule\n",
+    },
+    {
+        "module t;initial #2 ->e1; initial #3 ->>e1[3]; "
+        "initial begin ->a; ->b; ->>c; ->>d; end endmodule",
+        "module t;\n"
+        "  initial #2 ->e1;\n"
+        "  initial #3 ->>e1[3];\n"
+        "  initial begin\n"
+        "    ->a;\n"
+        "    ->b;\n"
+        "    ->>c;\n"
+        "    ->>d;\n"
+        "  end\n"
+        "endmodule\n",
+    },
+    {
         // qualified variables
         "module m ;initial  begin automatic int a; "
         " static byte s=0;end endmodule",
diff --git a/verible/verilog/formatting/token-annotator.cc b/verible/verilog/formatting/token-annotator.cc
index ebaeb21..fc6d2f0 100644
--- a/verible/verilog/formatting/token-annotator.cc
+++ b/verible/verilog/formatting/token-annotator.cc
@@ -483,6 +483,16 @@
   if (right.TokenEnum() == TK_POUNDPOUND) {
     return {1, "Space before ## (delay) operator"};
   }
+  if ((right.TokenEnum() == verilog_tokentype::TK_INCR ||
+       right.TokenEnum() == verilog_tokentype::TK_DECR) &&
+      right_context.IsInside(NodeEnum::kIncrementDecrementExpression) &&
+      !left_context.IsInside(NodeEnum::kIncrementDecrementExpression)) {
+    return {1, "Space before prefix '++'/'--'."};
+  }
+  if (right.TokenEnum() == verilog_tokentype::TK_TRIGGER ||
+      right.TokenEnum() == verilog_tokentype::TK_NONBLOCKING_TRIGGER) {
+    return {1, "Space before event trigger '->'/'->>' statement."};
+  }
   if (left.format_token_enum == FormatTokenType::unary_operator) {
     return {0, "++i over ++ i"};  // "++i" instead of "++ i"
   }
diff --git a/verible/verilog/formatting/token-annotator_test.cc b/verible/verilog/formatting/token-annotator_test.cc
index 04c9832..2adf936 100644
--- a/verible/verilog/formatting/token-annotator_test.cc
+++ b/verible/verilog/formatting/token-annotator_test.cc
@@ -2716,6 +2716,43 @@
           {0, SpacingOptions::kMustAppend},
       },
 
+      // Postfix "i++"/"j--": operand and operator share the same
+      // kIncrementDecrementExpression node, so no space is required.
+      {
+          DefaultStyle,
+          {verilog_tokentype::SymbolIdentifier, "i"},
+          {verilog_tokentype::TK_INCR, "++"},
+          {NodeEnum::kIncrementDecrementExpression},
+          {NodeEnum::kIncrementDecrementExpression},
+          {0, SpacingOptions::kUndecided},
+      },
+      {
+          DefaultStyle,
+          {verilog_tokentype::SymbolIdentifier, "j"},
+          {verilog_tokentype::TK_DECR, "--"},
+          {NodeEnum::kIncrementDecrementExpression},
+          {NodeEnum::kIncrementDecrementExpression},
+          {0, SpacingOptions::kUndecided},
+      },
+      // Prefix "++i"/"--j" used as its own statement/expression: the
+      // preceding token (e.g. a ')') is not part of the same expression
+      {
+          DefaultStyle,
+          {')', ")"},
+          {verilog_tokentype::TK_INCR, "++"},
+          {/* any context */},
+          {NodeEnum::kIncrementDecrementExpression},
+          {1, SpacingOptions::kUndecided},
+      },
+      {
+          DefaultStyle,
+          {')', ")"},
+          {verilog_tokentype::TK_DECR, "--"},
+          {/* any context */},
+          {NodeEnum::kIncrementDecrementExpression},
+          {1, SpacingOptions::kUndecided},
+      },
+
       // Handle '->' as a unary prefix expression.
       {
           DefaultStyle,
@@ -2734,6 +2771,24 @@
           {0, SpacingOptions::kUndecided},  // could be MustAppend though
       },
 
+      // Handle '->'/'->>' as event trigger statements
+      {
+          DefaultStyle,
+          {verilog_tokentype::TK_DecNumber, "1"},
+          {TK_TRIGGER, "->"},
+          {/* any context */},  // context
+          {/* any context */},  // context
+          {1, SpacingOptions::kUndecided},
+      },
+      {
+          DefaultStyle,
+          {verilog_tokentype::TK_DecNumber, "1"},
+          {TK_NONBLOCKING_TRIGGER, "->>"},
+          {/* any context */},  // context
+          {/* any context */},  // context
+          {1, SpacingOptions::kUndecided},
+      },
+
       // Handle '->' as a binary operator
       {
           DefaultStyle,
diff --git a/verible/verilog/formatting/tree-unwrapper.cc b/verible/verilog/formatting/tree-unwrapper.cc
index 09fa8c0..652d03e 100644
--- a/verible/verilog/formatting/tree-unwrapper.cc
+++ b/verible/verilog/formatting/tree-unwrapper.cc
@@ -962,11 +962,13 @@
     case NodeEnum::kProceduralContinuousDeassignmentStatement:
     case NodeEnum::kProceduralContinuousForceStatement:
     case NodeEnum::kProceduralContinuousReleaseStatement:
-    case NodeEnum::kNetVariableAssignment:           // e.g. x=y
-    case NodeEnum::kBlockingAssignmentStatement:     // id=expr
-    case NodeEnum::kNonblockingAssignmentStatement:  // dest <= src;
-    case NodeEnum::kAssignModifyStatement:           // id+=expr
-    case NodeEnum::kIncrementDecrementExpression:    // --y
+    case NodeEnum::kNetVariableAssignment:             // e.g. x=y
+    case NodeEnum::kBlockingAssignmentStatement:       // id=expr
+    case NodeEnum::kBlockingEventTriggerStatement:     // ->e;
+    case NodeEnum::kNonblockingAssignmentStatement:    // dest <= src;
+    case NodeEnum::kNonblockingEventTriggerStatement:  // ->>e;
+    case NodeEnum::kAssignModifyStatement:             // id+=expr
+    case NodeEnum::kIncrementDecrementExpression:      // --y
     case NodeEnum::kProceduralTimingControlStatement:
 
       // various flow control constructs
