private static String superMethodName(Method method) {
    String returnType = method.getReturnType().getName();
    return "super$"
        + method.getName()
        + "$"
        + returnType.replace('.', '_').replace('[', '_').replace(';', '_');
  }
The super method must include the return type, otherwise its ambiguous for methods with
covariant return types.
android/android_framework/dex-maker/src/main/java/com/android/dx/stock/ProxyBuilder.java