Quiero desactivar una advertencia específica (W1035) en mi código, ya que creo que el compilador es equivocado sobre esta advertencia:¿Cómo puedo desactivar temporalmente la advertencia "el valor de retorno puede estar indefinido"?
function TfrmNagScreen.Run: TOption;
begin
if ShowModal = mrOk then
Result := TOption(rdgAction.EditValue)
else
Abort
end;
No hay ninguna manera el resultado podría ser indefinido, ya que Abort
tiros EAbort
.
me trataron:
{$WARN 1035 Off}
: Al parecer, esto sólo funciona para algunos errores específicos (ver Documentation){$W-1035}
: no hace nada en absoluto
Sé que puedo apagar la alerta globalmente en las opciones del proyecto, o usando {$WARNINGS OFF}
, pero eso no es lo que se pretende aquí.
Editar: Tengo QC'ed esto ahora como #89744.
Si bien es cierto que el compilador a veces se confunde e informa esta advertencia sin causa, en este caso el compilador es técnicamente correcto. El resultado no se asigna antes del condicional y solo se asigna en la rama verdadera del condicional. El hecho de que la función regrese prematuramente si la condición es falsa es irrelevante para el compilador. –
@codeelgance: Muy cierto, pero creo que 'Abort' es una función integrada y el compilador podría reconocer la situación. –