Allow merging supertype into pinned subtype

If developers wish to do reflection on the super class or interfaces of a given class, it is still possible to prevent the vertical class merging of these super types by pinning the super types themselves.

Note that Proguard eliminates the interface A in the following example although MainActivity is kept.

    public class MainActivity extends Activity implements A {
        @Override
        protected void onCreate(android.os.Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            f();
        }

        @Override
        public void f() {}
    }

    public interface A {
        void f();
    }

Change-Id: I82b4700044a5c1ba07218250a544a6453ff4d140
diff --git a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
index c5d2144..222f979 100644
--- a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
+++ b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
@@ -77,7 +77,6 @@
     ILLEGAL_ACCESS,
     NO_SIDE_EFFECTS,
     PINNED_SOURCE,
-    PINNED_TARGET,
     RESOLUTION_FOR_FIELDS_MAY_CHANGE,
     RESOLUTION_FOR_METHODS_MAY_CHANGE,
     STATIC_INITIALIZERS,
@@ -109,9 +108,6 @@
         case PINNED_SOURCE:
           message = "it should be kept";
           break;
-        case PINNED_TARGET:
-          message = "its target should be kept";
-          break;
         case RESOLUTION_FOR_FIELDS_MAY_CHANGE:
           message = "it could affect field resolution";
           break;
@@ -469,13 +465,6 @@
 
       DexClass targetClass = appInfo.definitionFor(clazz.type.getSingleSubtype());
       assert !mergedClasses.containsKey(targetClass.type);
-      if (appInfo.isPinned(targetClass.type)) {
-        // We have to keep the target class intact, so we cannot merge it.
-        if (Log.ENABLED) {
-          AbortReason.PINNED_TARGET.printLogMessageForClass(clazz);
-        }
-        continue;
-      }
       if (clazz.hasClassInitializer() && targetClass.hasClassInitializer()) {
         // TODO(herhut): Handle class initializers.
         if (Log.ENABLED) {