Voglio disabilitare un avvertimento specifico (W1035) nel mio codice, in quanto credo che il compilatore è sbagliato su questo avvertimento:Come disattivare temporaneamente l'avviso "Il valore restituito potrebbe essere indefinito"?
function TfrmNagScreen.Run: TOption;
begin
if ShowModal = mrOk then
Result := TOption(rdgAction.EditValue)
else
Abort
end;
v'è alcun modo il risultato potrebbe essere indefinito, in quanto Abort
tiri EAbort
.
ho provato:
{$WARN 1035 Off}
: A quanto pare questo funziona solo per alcuni errori specifici (vedi Documentation){$W-1035}
: non fa niente affatto
So di poter spegnere l'allarme globalmente nelle opzioni del progetto, o usando {$WARNINGS OFF}
, ma non è quello che è inteso qui.
Modifica: l'ho QC ora come #89744.
Mentre è vero il compilatore a volte si confonde e segnala questo avviso senza motivo, in questo caso il compilatore è tecnicamente corretto. Il risultato non viene assegnato prima del condizionale e viene assegnato solo al ramo vero del condizionale. Il fatto che la funzione ritorni prematuramente se la condizione è falsa è irrilevante per il compilatore. –
@codeelgance: abbastanza vero, ma penso che 'Abort' sia una funzione incorporata e il compilatore possa riconoscere la situazione. –