Ignore class initialization for dead field elimination

Change-Id: I7d66607127461ab0b03f65cc57cf782151b3a661
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedField.java b/src/main/java/com/android/tools/r8/graph/DexEncodedField.java
index 27ba1a1..e95cb5e 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedField.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedField.java
@@ -161,7 +161,14 @@
           // Types that are a super type of the current context are guaranteed to be initialized
           // already.
           type -> appView.isSubtype(context, type).isTrue())) {
-        return null;
+        // Ignore class initialization side-effects for dead proto extension fields to ensure that
+        // we force replace these field reads by null.
+        boolean ignore =
+            appView.withGeneratedExtensionRegistryShrinker(
+                shrinker -> shrinker.isDeadProtoExtensionField(field), false);
+        if (!ignore) {
+          return null;
+        }
       }
     }