docs: private static Method findGenericDeclaration(Method bridgeMethod) {
  		// Search parent types for method that has same signature as bridge.
  		Class superclass = bridgeMethod.getDeclaringClass().getSuperclass();
  		while (superclass != null && !Object.class.equals(superclass)) {
  			Method method = searchForMatch(superclass, bridgeMethod);
  			if (method != null && !method.isBridge()) {
  				return method;
  			}
  			superclass = superclass.getSuperclass();
  		}
  
  		// Search interfaces.
  		Class[] interfaces = ClassUtils.getAllInterfacesForClass(bridgeMethod.getDeclaringClass());
  		for (Class ifc : interfaces) {
  			Method method = searchForMatch(ifc, bridgeMethod);
  			if (method != null && !method.isBridge()) {
  				return method;
  			}
  		}
  
  		return null;
  	}