import ceylon.language.meta.model { Class }
/*
* Do we really need to enforce that you can't
* ask for the annotations of a certain type for a
* certain program element unless the annotation
* type can appear at that program element? Why not
* just return no annotations?
*
*/
"The annotations of the [[given type|annotationType]]
applied to the [[given program element|programElement]].
For example:
// Does the process declaration have any annotations
// of type SharedAnnotation?
value isShared = annotations(`SharedAnnotation`, `value process`) exists;
The annotations may be returned in any order."
shared native Values annotations<Value, Values, in ProgramElement>(
Class<ConstrainedAnnotation<Value,Values,ProgramElement>> annotationType,
ProgramElement programElement)
given Value satisfies ConstrainedAnnotation<Value,Values,ProgramElement>
//given Values of <Value?> | <Value[]>
given ProgramElement satisfies Annotated;