SA0076: Costante di enumerazione mancantePermalink

Rileva se una variabile di enumerazione è usata come condizione e non tutti i valori di enumerazione sono trattati come rami ‎CASE‎.

Giustificazione: La programmazione difensiva richiede l'elaborazione di tutti i possibili valori di un'enumerazione. Se un'azione non è richiesta per un particolare valore dell'enumerazione, è necessario aggiungere un commento per indicarlo esplicitamente. Per il lettore del codice è chiaro che il valore non è stato semplicemente dimenticato.

Importanza: Basso

Esempio

TYPE My_Enum :
(
	red := 1, blue := 2, green := 3, black := 4
);
END_TYPE

PROGRAM PLC_PRG
VAR
	iVar : My_Enum;
	xTemp : BOOL;
END_VAR
iVar := My_Enum.black;

CASE iVar OF
	My_Enum.red:
		xTemp := FALSE;
	My_Enum.blue, My_Enum.green:
		xTemp := TRUE;
	ELSE
		xTemp := NOT xTemp;
END_CASE

--> SA0076: Missing enumeration constant 'black' in CASE statement