private static boolean isBridge(PsiMethod method) {
    PsiMethod[] superMethods = method.findSuperMethods();
    if (superMethods.length == 0) return false;
    PsiType returnType = TypeConversionUtil.erasure(method.getReturnType());
    List<PsiType> parameterTypes = ContainerUtil.map(method.getParameterList().getParameters(),
                                                     p -> TypeConversionUtil.erasure(p.getType()));
    for (PsiMethod superMethod : superMethods) {
      if (!Objects.equals(returnType, TypeConversionUtil.erasure(superMethod.getReturnType()))) {
        return true;
      }
      PsiParameter[] parameters = superMethod.getParameterList().getParameters();
      if (parameters.length == parameterTypes.size()) {
        for (int i = 0; i < parameters.length; i++) {
          if (!Objects.equals(TypeConversionUtil.erasure(parameters[i].getType()), parameterTypes.get(i))) {
            return true;
          }
        }
      }
    }
    return false;
  }
private static boolean isBridge(PsiMethod method)