AnnotationBeanNameGenerator was written before the introduction of the MergedAnnotations API and therefore heavily relies on the AnnotationMetadata abstraction and various helper methods for ASM compatibility.

However, recent work on determineBeanNameFromAnnotation(AnnotatedBeanDefinition) has made it apparent that we should use the MergedAnnotations API directly in AnnotationBeanNameGenerator where possible in order to avoid unnecessary, repeated iterations/streams over the same annotation metadata.