getAnnotation<D extends CompilationUnitMember> function

Annotation getAnnotation<D extends CompilationUnitMember>(
  1. CompilationUnit unit, {
  2. required String annotationName,
})

Returns the first Annotation whose resolved type name matches annotationName on any D declaration in unit, failing the test if absent.

Note:

  • Unresolved units will always return null.
  • D controls which declaration kind is searched (e.g. ClassDeclaration, MixinDeclaration, FunctionDeclaration).

Implementation

Annotation getAnnotation<D extends CompilationUnitMember>(
  CompilationUnit unit, {
  required String annotationName,
}) {
  final annotation = findAnnotation<D>(unit, annotationName: annotationName);
  if (annotation == null) {
    fail('Could not find @$annotationName on any $D in the compilation unit');
  }

  return annotation;
}