SA0025: Unqualifizierte Enumerationskonstanten

Funktion

Ermittelt Aufzählungskonstanten, die nicht mit einem qualifizierten Namen verwendet werden, d.h. ohne dass der Name der Enumeration vorangestellt ist.

Begründung

Qualifizierte Zugriffe machen den Code besser lesbar und besser wartbar. Ohne das Erzwingen qualifizierter Variablennamen könnte bei Erweiterung des Programms eine weitere Enumeration eingefügt werden, die eine gleichnamige Konstante wie eine bereits existierende Enumeration enthält (siehe im Beispiel unten: “eRed”). Dann käme es zu einem nicht-eindeutigen Zugriff in diesem Codestück.

Wir empfehlen in jedem Fall nur Enumerationen zu verwenden, die das {attribute ‘qualified-only’} tragen.

Wichtigkeit

Mittel

Beispiel:

Enumeration E_Color:

TYPE E_Color :
(
    eRed,
    eGreen,
    eBlue
);
END_TYPE

Programm MAIN:

PROGRAM MAIN
VAR
    eColor  : E_Color;
END_VAR
eColor := E_Color.eGreen;        // no error
eColor := eGreen;                // => SA0025