これは、コードが次のようになっていることを意味します。次に例を示します。
// Somewhere else in the source:
…someFunction(2)…
…
…x = 2;…
…someFunction(x)…
…
// Et cetera, the point being that whenever someFunction is called, its argument always has the value 2.
// The definition of someFunction:
void someFunction(Int32 someVariable)
{
foo(someVariable*3);
y = someVariable*7 - 4;
bar(y);
…
}
そして作者はそれをこれに変更しました:
// The definition of someFunction:
void someFunction(Int32 someVariable)
{
(void) someVariable;
foo(6);
y = 10;
bar(y);
…
}
だから、起こったことは:
- 「someVariable」が「someFunction」に登場するところはどこでも、作者はそれを「2」に置き換えました。
- その後、作者は表現を減らし、「someVariable*3」が「2*3」になり、次に「6」になりました。これは、someFunctionに「someVariable」が表示されない理由とsomeFunctionに「2」が表示されない理由を説明しています。
つまり、someFunctionのコードは、someVariableが2の場合の元のコードの動作と同じように動作するようになりました。someFunctionの本体を「someVariableとは関係のない処理」と表現しますが、実際には、 someVariableの変数の場合は2。関数でsomeVariableが果たした役割はすべて編集によって失われましたが、おそらく、someVariableが2である限り、このコードは古いコードと同じように動作します。