Enum unboxing and test fix after enabling constructor inlining

Change-Id: I51278c124c2625867fdb890c75176c1046d3ac11
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
index c570ab9..1ff0a10 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
@@ -1379,14 +1379,21 @@
     // e == MyEnum.X
     TypeElement leftType = theIf.lhs().getType();
     TypeElement rightType = theIf.rhs().getType();
-    if (leftType.equalUpToNullability(rightType)) {
-      assert leftType.isClassType();
-      assert leftType.asClassType().getClassType() == enumClass.type;
+    if (isEqualEnumCandidateType(leftType, rightType, enumClass)) {
       return Reason.ELIGIBLE;
     }
     return Reason.INVALID_IF_TYPES;
   }
 
+  private boolean isEqualEnumCandidateType(
+      TypeElement leftType, TypeElement rightType, DexProgramClass enumClass) {
+    if (!leftType.isClassType() || !rightType.isClassType()) {
+      return false;
+    }
+    return getEnumUnboxingCandidateOrNull(leftType) == enumClass
+        && getEnumUnboxingCandidateOrNull(rightType) == enumClass;
+  }
+
   @SuppressWarnings({"ReferenceEquality", "UnusedVariable"})
   private Reason analyzeInstanceGetUser(
       InstanceGet instanceGet,
diff --git a/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java b/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
index 86f4fd6..c0211ef 100644
--- a/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
@@ -252,8 +252,7 @@
             .apply(this::suppressZipFileAssignmentsToJavaLangAutoCloseable)
             .compile()
             .graphInspector();
-    assertRetainedClassesEqual(
-        referenceInspector, ifThenKeepClassesWithMembersInspector, true, true);
+    assertRetainedClassesEqual(referenceInspector, ifThenKeepClassesWithMembersInspector);
 
     GraphInspector ifHasMemberThenKeepClassInspector =
         testForR8(Backend.CF)
@@ -274,7 +273,7 @@
             .apply(this::suppressZipFileAssignmentsToJavaLangAutoCloseable)
             .compile()
             .graphInspector();
-    assertRetainedClassesEqual(referenceInspector, ifHasMemberThenKeepClassInspector, true, true);
+    assertRetainedClassesEqual(referenceInspector, ifHasMemberThenKeepClassInspector);
   }
 
   private void configureHorizontalClassMerging(R8FullTestBuilder testBuilder) {