Return specific types when possible as if-rule candidates.

Bug: 172999904
Change-Id: I575a37fe6dc342d332cd8ea541e851d60b7fe58e
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationRule.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationRule.java
index 4a19c6f..aac168d 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationRule.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationRule.java
@@ -105,6 +105,10 @@
       AppView<? extends AppInfoWithClassHierarchy> appView,
       SubtypingInfo subtypingInfo,
       Iterable<DexProgramClass> defaultValue) {
+    List<DexType> specificTypes = getClassNames().asSpecificDexTypes();
+    if (specificTypes != null) {
+      return DexProgramClass.asProgramClasses(specificTypes, appView);
+    }
     if (hasInheritanceClassName() && getInheritanceClassName().hasSpecificType()) {
       DexType type = getInheritanceClassName().getSpecificType();
       if (appView.verticallyMergedClasses() != null