Pragma manifest#
Pragma manifest for complex types
Description#
A pragma ‘manifest’ shall be used for each type declaration. Optionally, the rule applies only for each type declaration used in the interface of a root operator / imported operator: Either all the root operators, or the ones of the specified configuration.
The parameter allows defining the name of a configuration and the applicable domain with the following syntax:
configuration=<name>,interface=true|false
(default value: configuration=,interface=false
).
Rationale#
Rationale: Ensure generated code stability and user controlled naming of type declarations of root operators / imported operators.
Verification#
The rule registers to the types of a Scade model, and raises a violation for each
type whose equivalence class does not have a type with the KCG pragma manifest
.
Message: The type <type definition>
has no KCG pragma “manifest”.
The rule applies only to arrays and structures.
When the parameter interface
is set, the verification is restricted to the
types used in the declaration of a root operator or imported operator.
Message: The type <type definition>
has no KCG pragma “manifest” and is used in the interface of root operators: <operators>``.
An operator is root if it doesn’t have any instance in the model.
The
configuration
parameter, when set, restricts the root operators to those specified for code generation.
Resolution#
Set the KCG pragma manifest
to the type.
Customization#
N/A.