Version 1.6.90

Add message to enqueuer assertion for debugging b/150325706.

Bug: 150325706
Change-Id: I3780f3f2ed21547ee3071e89d687719b2001aa1e
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index a705522..0cfd341 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
 
   // This field is accessed from release scripts using simple pattern matching.
   // Therefore, changing this field could break our release scripts.
-  public static final String LABEL = "1.6.89";
+  public static final String LABEL = "1.6.90";
 
   private Version() {
   }
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index b2b20a1..b2dcf9b 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -1171,7 +1171,7 @@
     KeepReason reason = KeepReason.reachableFromLiveType(holder.type);
 
     for (DexType iface : holder.interfaces.values) {
-      markInterfaceTypeAsLiveViaInheritanceClause(iface, reason);
+      markInterfaceTypeAsLiveViaInheritanceClause(holder, iface, reason);
     }
 
     if (holder.superType != null) {
@@ -1250,14 +1250,26 @@
     }
   }
 
-  private void markInterfaceTypeAsLiveViaInheritanceClause(DexType type, KeepReason reason) {
+  private void markInterfaceTypeAsLiveViaInheritanceClause(
+      DexProgramClass implementer, DexType type, KeepReason reason) {
     if (appView.options().enableUnusedInterfaceRemoval && !mode.isTracingMainDex()) {
       DexProgramClass clazz = getProgramClassOrNull(type);
       if (clazz == null) {
         return;
       }
 
-      assert clazz.isInterface();
+      assert clazz.isInterface()
+          : implementer.isInterface()
+              ? ("Interface `"
+                  + implementer.type.toSourceString()
+                  + "` extends non-interface `"
+                  + type.toSourceString()
+                  + "`")
+              : ("Class `"
+                  + implementer.type.toSourceString()
+                  + "` implements non-interface `"
+                  + type.toSourceString()
+                  + "`");
 
       if (!clazz.interfaces.isEmpty()) {
         markTypeAsLive(type, reason);