    Enum { type_name: u16, const_name: u16 },
    Class(u16),
    Annotation(Annotation),
    Array(Vec<ElementValue>),
}

#[derive(Clone, Debug)]
pub struct TypeAnnotation {
    pub target: TypeAnnotationTarget,
    pub path: Vec<TypePathSegment>,
    pub annotation: Annotation,