annotatedWith

Filter by annotations placed on the declaration.

If a class, top-level function or property, or class member (a property or a function) is annotated with one of the specified annotations, then this declaration matches the filter.

For exclusions, matching classes, top-level symbols, or members are excluded from the dump. For inclusions, matching classes or members are included in the dump.

For annotations from Java sources, canonical names are used. The main motivation is to ensure a consistent approach to writing class names, using periods . as delimiters throughout.

Name templates are allowed, with support for wildcards such as **, *, and ?:

  • ** - Matches zero or more characters, including periods.

  • * - Matches zero or more characters excluding periods. Use this to specify a single class name.

  • ? - Matches exactly one character.

Example:

filters {
excluded {
annotatedWith.add("foo.ExcludeAbi") // exclude any class property or function annotated with 'foo.ExcludeAbi'
}
}

Important: The annotation must have a Retention of BINARY or RUNTIME type. Annotations with SOURCE retention cannot be analyzed and will be ignored.