Fail R8 partial compilation if proto optimization is enabled

Bug: b/392529669
Change-Id: I864016c04f8d690fc3bd9aefaf78375a35870a34
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 89a0826..903a9bd 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -784,6 +784,24 @@
       }
     }
 
+    private void validateProguardConfiguration(
+        ProguardConfiguration configuration, ProguardConfigurationParserOptions parserOptions) {
+      Reporter reporter = getReporter();
+      if (!parserOptions.isKeepRuntimeInvisibleAnnotationsEnabled()) {
+        if (configuration.getKeepAttributes().runtimeInvisibleAnnotations
+            || configuration.getKeepAttributes().runtimeInvisibleParameterAnnotations
+            || configuration.getKeepAttributes().runtimeInvisibleTypeAnnotations) {
+          throw fatalError(
+              new StringDiagnostic("Illegal attempt to keep runtime invisible annotations"));
+        }
+      }
+      if (partialCompilationConfiguration.isEnabled()) {
+        if (configuration.isProtoShrinkingEnabled()) {
+          reporter.error("Partial shrinking does not support -shrinkunusedprotofields");
+        }
+      }
+    }
+
     private boolean hasMainDexList() {
       return getAppBuilder().hasMainDexList();
     }
@@ -919,14 +937,7 @@
       // TODO(b/248408342): Remove this and parse annotations as part of R8 root-set & enqueuer.
       extractKeepAnnotationRules(parser);
       ProguardConfiguration configuration = configurationBuilder.build();
-      if (!parserOptions.isKeepRuntimeInvisibleAnnotationsEnabled()) {
-        if (configuration.getKeepAttributes().runtimeInvisibleAnnotations
-            || configuration.getKeepAttributes().runtimeInvisibleParameterAnnotations
-            || configuration.getKeepAttributes().runtimeInvisibleTypeAnnotations) {
-          throw fatalError(
-              new StringDiagnostic("Illegal attempt to keep runtime invisible annotations"));
-        }
-      }
+      validateProguardConfiguration(configuration, parserOptions);
       return configuration;
     }