$IFOPTこれは、次のディレクティブを使用して実行できます。
{$IFOPT C+}
// this block conditionally compiled if and only if assertions are active
{$ENDIF}
したがって、次のようにコードを書き直すことができます。
procedure Whatever;
{$IFOPT C+}
var
v : Integer;
{$ENDIF}
begin
{$IFOPT C+}v := {$ENDIF}DoSomething;
{$IFOPT C+}Assert(v >= 0);{$ENDIF}
end;
これにより、コンパイラのヒントが抑制されますが、目が出血します。
私はおそらく次のようにそれを抑制します:
procedure SuppressH2077ValueAssignedToVariableNeverUsed(const X); inline;
begin
end;
procedure Whatever;
var
v : Integer;
begin
v := DoSomething;
Assert(v >= 0);
SuppressH2077ValueAssignedToVariableNeverUsed(v);
end;
H2077 を抑制するには、suppress 関数が受け取る型指定されていないパラメーターで十分です。また、を使用inlineすると、関数呼び出しがないため、コンパイラはコードを発行しません。