docs: @SuppressWarnings({"unused", "unchecked"})
      @Internal
      @UsedByGeneratedCode
      protected final AbstractBeanDefinition addInjectionPoint(
              Class declaringType,
              Class fieldType,
              String field,
              @Nullable AnnotationMetadata annotationMetadata,
              @Nullable Argument[] typeArguments,
              boolean requiresReflection) {
          if (annotationMetadata != null && annotationMetadata.hasDeclaredAnnotation(Inject.class)) {
              requiredComponents.add(fieldType);
          }
          if (requiresReflection) {
              fieldInjectionPoints.add(new ReflectionFieldInjectionPoint(
                      this,
                      declaringType,
                      fieldType,
                      field,
                      annotationMetadata,
                      typeArguments
              ));
          } else {
              fieldInjectionPoints.add(new DefaultFieldInjectionPoint(
                      this,
                      declaringType,
                      fieldType,
                      field,
                      annotationMetadata,
                      typeArguments
              ));
          }
          return this;
      }