Legacy Issue Number: 19145
Source: Remedy IT ( Martin Corino)
There is no clear specification of whether annotation types are part of the same naming scope as other IDL declared types or not.
The Type System Model described in chapter 7.2.2 seems to indicate they are all declared in a single naming scope as an annotation member could have "any enumeration type". In IDL this would require them to have the same naming scope as IDL declared enum types.
As a consequence it would mean that annotation type names could clash with type names used by 'regular' local interface definitions.
It would also seem to indicate that annotation application syntax would have to support scoped naming like "@Test::MyAnnotation()".
Clear specifications for all these considerations are missing from the spec.
Reported: DDS-XTypes 1.1 — Sun, 15 Dec 2013 05:00 GMT
Disposition: Duplicate or Merged — DDS-XTypes 1.2
This problem is partly caused by the use of "interfaces" to define annotations.
However annotation names should never conflict with any other types (interfaces or otherwise) as their use is proceeded by the character "@".
IDL4 new syntax for declaring annotations makes it more obvious by using the keyword "@annotation" to define annotations.
Since legacy IDL compilers are no expected to parse the annotation declarations it seems that this issue will only affect the new compilers.
IDL4 does declare scopes for applying annotations, but all the builtin annotations (which include the XTYPES ones) are defined in the global scope.
Therefore this issue should be solved the same way as XTYPE12-34 ideally aligning the syntax with that of IDL4.
Updated: Thu, 22 Jun 2017 16:42 GMT