Redirection of super calls to default interface methods

Change-Id: I08851eb9fd21cd293af8f803d049599877ecddbe
diff --git a/src/test/examplesAndroidO/classmerging/NestedDefaultInterfaceMethodsTest.java b/src/test/examplesAndroidO/classmerging/NestedDefaultInterfaceMethodsTest.java
new file mode 100644
index 0000000..7a0e325
--- /dev/null
+++ b/src/test/examplesAndroidO/classmerging/NestedDefaultInterfaceMethodsTest.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package classmerging;
+
+public class NestedDefaultInterfaceMethodsTest {
+
+  public static void main(String[] args) {
+    new C().m();
+  }
+
+  public interface A {
+
+    default void m() {
+      System.out.println("In A.m()");
+    }
+  }
+
+  public interface B extends A {
+
+    @Override
+    default void m() {
+      System.out.println("In B.m()");
+      A.super.m();
+    }
+  }
+
+  public static class C implements B {
+
+    @Override
+    public void m() {
+      System.out.println("In C.m()");
+      B.super.m();
+    }
+  }
+}
diff --git a/src/test/examplesAndroidO/classmerging/keep-rules.txt b/src/test/examplesAndroidO/classmerging/keep-rules.txt
index fc91808..4df182e 100644
--- a/src/test/examplesAndroidO/classmerging/keep-rules.txt
+++ b/src/test/examplesAndroidO/classmerging/keep-rules.txt
@@ -10,6 +10,9 @@
 -keep public class classmerging.MergeDefaultMethodIntoClassTest {
   public static void main(...);
 }
+-keep public class classmerging.NestedDefaultInterfaceMethodsTest {
+  public static void main(...);
+}
 
 # TODO(herhut): Consider supporting merging of inner-class attributes.
 # -keepattributes *
\ No newline at end of file