docs: public static <T> void checkAbstractMethods(Set<Type> decoratedTypes, EnhancedAnnotatedType<T> type, BeanManagerImpl beanManager) {
  
          if (decoratedTypes == null) {
              decoratedTypes = new HashSet<Type>(type.getInterfaceClosure());
              decoratedTypes.remove(Serializable.class);
          }
  
          Set<MethodSignature> signatures = new HashSet<MethodSignature>();
  
          for (Type decoratedType : decoratedTypes) {
              for (EnhancedAnnotatedMethod<?, ?> method : ClassTransformer.instance(beanManager)
                      .getEnhancedAnnotatedType(Reflections.getRawType(decoratedType), beanManager.getId()).getEnhancedMethods()) {
                  signatures.add(method.getSignature());
              }
          }
  
          for (EnhancedAnnotatedMethod<?, ?> method : type.getEnhancedMethods()) {
              if (Reflections.isAbstract(((AnnotatedMethod<?>) method).getJavaMember())) {
                  MethodSignature methodSignature = method.getSignature();
                  if (!signatures.contains(methodSignature)) {
                      throw BeanLogger.LOG.abstractMethodMustMatchDecoratedType(method, Formats.formatAsStackTraceElement(method.getJavaMember()));
                  }
              }
          }
      }