tree d3895d40c51570fc665699c58b90182720e2d074
parent 53be22a32444d1d821606992fa5cff9063a8f671
author Christoffer Quist Adamsen <christofferqa@google.com> 1529322004 +0200
committer Christoffer Quist Adamsen <christofferqa@google.com> 1529322004 +0200

Disallow rewrite of invoke-super in merged class

When we merge a class B into another class C, the methods from B are moved into C, and then we subsequently rewrite the invoke-super instructions in C that hit a method in B, such that they use an invoke-direct instruction instead. In this process, we need to avoid rewriting the invoke-super instructions that originally was in the superclass B.

Example:
  class A {
    public void m() {}
  }
  class B extends A {
    // this method will be made private and renamed to C.m$B when merged into C
    public void m() {
      // invoke must not be rewritten to "invoke-direct C.m$B"
      // (this would lead to an infinite loop)
      super.m();
    }
  }
  class C extends B {
    // invoke needs to be rewritten to "invoke-direct C.m$B"
    public void m() { super.m(); }
  }

Change-Id: Ic8698193aeeca7b9293d0214e0556c9407540cc9