retrolambda
retrolambda copied to clipboard
Cannot explicitly call default method in an interface on Android
I have a default method in an interface, and I tried to call it explicitly from the same method in the implementing class and it is generating an exception:
@Override
public void glDrawArrays(int primitive, int offset, int vertexCount)
{
IGraphicsDevice.super.glDrawArrays(primitive, offset, vertexCount);
GLES30.glDrawArrays(primitive, offset, vertexCount);
}
This is the code that I'm having and it works fine under standard Java 8. But when doing the same code (back ported to Java 1.6 on android) generates the following error:
Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstInterfaceMethodRef cannot be cast to com.android.dx.rop.cst.CstMethodRef
I'm using this with latest gradle-retrolambda and retrolambda. I'm not even using Progaurd, so I'm not sure why this is being caused. All the original default method does is that it increments a static variable from a final inner class of the same interface.
@orfjackal Sorry for pinging directly, but do you need any more information regarding this issue?
It would help to have a SSCCE for reproducing it. I haven't yet had time to look into this issue, but that would help to make it faster to fix.
The error message about CstInterfaceMethodRef and CstMethodRef sounds like it can be something similar to #119