XCSG:TypeAlias
From AtlasWiki
Revision as of 11:39, 13 May 2014 by TheodoreMurdock (Talk | contribs)
A TypeAlias introduces a synonym for an existing type analogous to the use of typedef in C and C++.
A TypeAlias in XCSG is not considered a Type, but provides a synonym (alias) for a given type, the AliasedType. This type may be an existing type, or an instantiation of a type with template parameters.
A TypeAlias is never the TypeOf a Variable or DataFlow node, instead the TypeOf edge points directly to the Type, while an additional DefinedAs edge points to the TypeAlias used to declare the Variable's type.
A TypeAlias defined using another TypeAlias points its AliasedType edge to that TypeAlias, rather than directly to the Type it is an alias of.
Specification
Metaclass | TypeAlias |
---|---|
Extends | Node |
Description | An alias for an existing type. |
Direct Subkinds | C:Enum |
---|
All Superkinds | Node, ModelElement |
---|
Specified In Edges | |||
---|---|---|---|
In Edge | Predecessor | Multiplicity | Description |
AliasedType | TypeAlias | ✱ | Connects a TypeAlias to the Type or TypeAlias it was declared to duplicate. |
DefinedAs | Variable | ✱ | Connects a Variable or DataFlow node which received its Type via a TypeAlias (such as a C/C++ typedef) to that TypeAlias. |
DataFlow (Node) | ✱ |
Specified Out Edges | |||
---|---|---|---|
Out Edge | Successor | Multiplicity | Description |
AliasedType | Type | 0..1 | Connects a TypeAlias to the Type or TypeAlias it was declared to duplicate. |
TypeAlias | 0..1 |
Known Possible In Edges
| ||||
---|---|---|---|---|
Inherited From | In Edge | Predecessor | Multiplicity | Description |
Node | Contains | Node | 1 | Indicates that the predecessor contains the successor in a sense specified by the specific type of Contains edge. |
Known Possible Out Edges
| ||||
---|---|---|---|---|
Inherited From | Out Edge | Successor | Multiplicity | Description |
Node | Contains | Node | ✱ | Indicates that the predecessor contains the successor in a sense specified by the specific type of Contains edge. |