-
Notifications
You must be signed in to change notification settings - Fork 27
Open
Labels
cat:langCategory: Language designCategory: Language designcmp:compilerComponent: Compiler backend (e.g., annotation processors, code generators)Component: Compiler backend (e.g., annotation processors, code generators)typ:enhanceType: Enhancement/new featureType: Enhancement/new feature
Milestone
Description
The current syntax of annotations is very limited:
- They can has only zero or one parameter.
- Their argument cannot be other than a string.
In order to make it usable for production (e.g. #130), make annotations richer through addition of the following features:
- Multiple parameters (Named and multiple arguments for annotations #190)
- Keyword arguments (Named and multiple arguments for annotations #190)
- Typed arguments
- Strings, e.g.,
"foo"
- Integers, e.g.,
123
(Support an integer type annotation argument #267) - Type expressions, e.g.,
uuid
- References to union tags/enum members
- References to fields
- Strings, e.g.,
Metadata
Metadata
Assignees
Labels
cat:langCategory: Language designCategory: Language designcmp:compilerComponent: Compiler backend (e.g., annotation processors, code generators)Component: Compiler backend (e.g., annotation processors, code generators)typ:enhanceType: Enhancement/new featureType: Enhancement/new feature