import ceylon.language{AnnotationType = Annotation}
"Declaration which can be annotated, such as:
- [[NestableDeclaration]]
- [[Module]]
- [[Package]]
You can query annotations that are placed on a given annotated declaration with:
"
shared sealed interface AnnotatedDeclaration of NestableDeclaration
| Module
| Package
satisfies Declaration & Annotated {
"""The annotation instances of the given
annotation type on this declaration.
For example, you can list all the [[SeeAnnotations|ceylon.language::SeeAnnotation]]
annotations on [[List|ceylon.language::List]]
with the following code:
for(annot in `interface List`.annotations<SeeAnnotation>()){
for(elems in annot.programElements){
print("See: ``elems``");
}
}
Alternatively, you can use the [[ceylon.language.meta::annotations]]
function.
"""
shared formal Annotation[] annotations<out Annotation>()
given Annotation satisfies AnnotationType;
}