Account for types bound in distributor

Fixes: b/388542826
Change-Id: I88878726c8ed68816b3aa98518f731afa934d11d
diff --git a/src/main/java/com/android/tools/r8/dex/VirtualFile.java b/src/main/java/com/android/tools/r8/dex/VirtualFile.java
index c8f16fc..1f73eb5 100644
--- a/src/main/java/com/android/tools/r8/dex/VirtualFile.java
+++ b/src/main/java/com/android/tools/r8/dex/VirtualFile.java
@@ -286,8 +286,9 @@
   }
 
   public boolean isFull(int maxEntries) {
-    return (transaction.getNumberOfMethods() > maxEntries)
-        || (transaction.getNumberOfFields() > maxEntries);
+    return transaction.getNumberOfMethods() > maxEntries
+        || transaction.getNumberOfFields() > maxEntries
+        || transaction.getNumberOfTypes() > maxEntries;
   }
 
   public boolean isFull() {
@@ -306,6 +307,10 @@
     return transaction.getNumberOfClasses();
   }
 
+  public int getNumberOfTypes() {
+    return transaction.getNumberOfTypes();
+  }
+
   void throwIfFull(boolean hasMainDexList, Reporter reporter) {
     if (!isFull()) {
       return;
@@ -1119,6 +1124,10 @@
       return classes.size() + base.classes.size();
     }
 
+    int getNumberOfTypes() {
+      return types.size() + base.types.size();
+    }
+
     int getNumberOfFields() {
       return fields.size() + base.getNumberOfFields();
     }