界: Code Quality

コードの質が低いと、予測できない動作につながります。ユーザーの視点には、それがしばしば使い勝手の悪さとなって現れます。攻撃者にとっては、予期せぬ方法でシステムにストレスを与える機会となります。

Dead Code

Abstract
このステートメントが実行されることはありません。
Explanation
このステートメントは、周辺のコードによって実行されてないようになっています。

例: 2 つ目の if ステートメントで条件が満たされることはありません。変数 s には NULL 以外の値が求められていますが、一方で、s に NULL 以外の値を割り当てることができるパスには、return ステートメントが記述されています。


String s = null;

if (b) {
s = "Yes";
return;
}

if (s != null) {
Dead();
}
desc.internal.cpp.dead_code
Abstract
関数が効果のないコードを定義しています。
Explanation
Solidity では、開発者は効果のないコードを作成することができます。これにより、予期しない動作が発生したり、意図した動作が実行されないコードが生まれる可能性があります。

例 1: 次のコードは、msg.sender の残高を更新しようとしますが、= の代わりに == を使用します。これには何の効果もありません。


function deposit(uint amount) public payable {
require(msg.value == amount, 'incorrect amount');
balance[msg.sender] == amount;
}
desc.structural.solidity.swc135