Revert "Reintroduce assertion in enum unboxing"

This reverts commit 9e65d69be3095cf91f936040b29c63b9a157e585.

Reason for revert: Failures on bots

Change-Id: I392f81c12f4cefb03538c571bb17a6259302ce51
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
index 8f9af7a..d775aa1 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -256,10 +256,6 @@
     assert parameterAnnotationsList != null;
   }
 
-  public DexTypeList parameters() {
-    return method.proto.parameters;
-  }
-
   public DexType returnType() {
     return method.proto.returnType;
   }
diff --git a/src/main/java/com/android/tools/r8/graph/DexTypeList.java b/src/main/java/com/android/tools/r8/graph/DexTypeList.java
index 2272c98..58b6afd 100644
--- a/src/main/java/com/android/tools/r8/graph/DexTypeList.java
+++ b/src/main/java/com/android/tools/r8/graph/DexTypeList.java
@@ -7,7 +7,6 @@
 import com.android.tools.r8.dex.MixedSectionCollection;
 import com.android.tools.r8.errors.Unreachable;
 import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.utils.ArrayUtils;
 import java.util.Arrays;
 
 public class DexTypeList extends DexItem {
@@ -29,10 +28,6 @@
     this.values = values;
   }
 
-  public boolean contains(DexType type) {
-    return ArrayUtils.contains(values, type);
-  }
-
   @Override
   public int hashCode() {
     return Arrays.hashCode(values);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java
index 692b2ee..5e4eaed 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCandidateAnalysis.java
@@ -132,7 +132,6 @@
   private void removeEnumsInAnnotations() {
     for (DexProgramClass clazz : appView.appInfo().classes()) {
       if (clazz.isAnnotation()) {
-        assert clazz.interfaces.contains(appView.dexItemFactory().annotationType);
         removeEnumsInAnnotation(clazz);
       }
     }
@@ -142,11 +141,16 @@
     // Browse annotation values types in search for enum.
     // Each annotation value is represented by a virtual method.
     for (DexEncodedMethod method : clazz.virtualMethods()) {
-      assert method.parameters().isEmpty();
-      DexType valueType = method.returnType().toBaseType(appView.dexItemFactory());
-      if (enumToUnboxCandidates.containsKey(valueType)) {
-        enumUnboxer.reportFailure(valueType, Reason.ANNOTATION);
-        enumToUnboxCandidates.remove(valueType);
+      DexProto proto = method.method.proto;
+      // There can be references to  enum unboxing candidates even if the parameter list is non
+      // empty. That is possible by injecting methods in the bytecode, but such methods are no
+      // different from other methods in the program, and can be rewritten by enum unboxing.
+      if (proto.parameters.isEmpty()) {
+        DexType valueType = proto.returnType.toBaseType(appView.appInfo().dexItemFactory());
+        if (enumToUnboxCandidates.containsKey(valueType)) {
+          enumUnboxer.reportFailure(valueType, Reason.ANNOTATION);
+          enumToUnboxCandidates.remove(valueType);
+        }
       }
     }
   }