Make Starlark actions that have an unused inputs list unshareable.

This is useful because shared actions with state are not nice, so let's
minimize the number of their occurrences.

RELNOTES: None.
PiperOrigin-RevId: 255565510
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java
index 00173c0..5523b7f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/StarlarkAction.java
@@ -110,6 +110,11 @@
   }
 
   @Override
+  public boolean isShareable() {
+    return !unusedInputsList.isPresent();
+  }
+
+  @Override
   public boolean discoversInputs() {
     return unusedInputsList.isPresent();
   }
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
index 5a9f895..eaf2775 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
@@ -710,6 +710,7 @@
     assertThat(action.getUnusedInputsList()).isPresent();
     assertThat(action.getUnusedInputsList().get().getFilename()).isEqualTo("a.txt");
     assertThat(action.discoversInputs()).isTrue();
+    assertThat(action.isShareable()).isFalse();
   }
 
   @Test