Attribute (or annotation) types (e.g. @Override in Java or [System.Serializable] in C#). This is a fundamentally important part of reflection, which there will be a focus on in further issues.
Attributes need to have:
The ability to take constant parameters, such as string and numerical literals, constant variables, function pointers, etc.
The ability to determine the usage of an attribute using something akin to @RetentionPolicy in Java or [AttributeUsage] in C#.
The ability to be accessible at compile-time, i.e. encoded in the kpkg format.
The ability to be accessible at runtime using the reflection API.
Attribute (or annotation) types (e.g.
@Override
in Java or[System.Serializable]
in C#). This is a fundamentally important part of reflection, which there will be a focus on in further issues.Attributes need to have:
@RetentionPolicy
in Java or[AttributeUsage]
in C#.