Further improved error analysis in IDM A.06.02.l

The extended error analysis has been expanded by several functions in the current version A.06.02.l of the ISA Dialog Manager.

The error analysis now also recognizes unused, imported modules that are imported via use or import instructions. An imported module is considered unused if no exported objects are referenced from it. Unused imports are reported with the new error code DME_ImportNotUsed ("Imported module never used").

The interface files now contain the definitions of all user-defined attributes and methods, so there is no need to write them out as comments in the form "// @define". These definitions are necessary and useful to support the extended error analysis and to avoid unnecessary reloading or to recognize incorrect accesses and uses of methods and attributes.

The value propagation from the variable analysis now flows into the type checks for assignments, expressions, parameters and return values. The identification of variables, objects and child accesses is also used. Possible errors are indicated by the words "maybe" and "possible" in the error messages. An absolute path that can be completely resolved when loading the module or dialog is treated as a constant value (object ID). This means that such values can also be used directly for data flow analysis and type testing. If it is a relative path with designated child objects that can only be evaluated at runtime, the object referenced at load time is used as a "maybe" validity object in order to perform type checks, e.g. during assignment. It can also provide information on possible missing attributes. Using object detection, the error analysis determines the existing methods and detects incorrect types, arguments and return types or discrepancies in the number of parameters. Identifying methods that are used on the model but only exist on the instance typically lead to an error message "Method maybe undefined".

The error analysis can now be configured so that a "read" access is assumed for the analysis of loop variables. As a result, "Variable is never read" warnings relating to for loop variables disappear. The configuration is carried out via the option -IDManalyzerconfig=loop_var_read or the environment variable IDM_ANALYZERCONFIG, whereby the option has priority.

The option -IDMdisable_errors=namepart can be used to deactivate several error messages at the same time. By specifying namepart, all error messages whose error code contains namepart are deactivated.

In addition, various problems with the existing functions of the extended error analysis have been fixed.

List of corrections and changes

13076, 13067

en_GB