[CR] supporting reference types in structured types
Submitted by Kristof Szabados
Link to original bug (#558719)
Description
There was a change in the standard that allows the user to create records with for example port type fields.(restriction was removed)
The benefit of this behaviour is the better structuring of information, where ports, components, timers would be used in structured information, possibly with some additional data.
But please note, that several operations with such types/data structures are not permitted, for example: sending them over them network. Which has to be detected differently.
Please note the phrasing in the standard (V4.11.1): 22.2.1: "The send operation places a message on an outgoing message port. The message may be specified by referencing a defined template or can be defined as an in-line template." 15.0 restriction b): "Templates shall not be of a structured type that contains fields of default, port or timer type on any level of nesting."
As such effectively records with port type field can not be sent over the network. This is described by saying that only templates can be send on the network + saying that templates can not be created from such structured types.
Please note:
- the whole standard needs to be reviewed carefully before implementing the change.
- this will also change error messages reported by the compiler.
Version: 6.6.0