デッドコード削除
たとえ構文解析上はどこからも参照されない関数/メソッドや変数/定数/フィールド/プロパティやデータ型であったとしても、リフレクション機能をサポートする言語の場合、冗長コードとみなして削除してしまうのは問題がある。ダックタイピングなどの目的で、実行時に(動的に)文字列とリフレクションAPIを利用してメソッドやフィールドやクラスなどにアクセスする場合、コンパイル時の静的な構文解析で認識可能な通常の識別子経由でそれらが使われていないからといって、それらを完全に削除してしまうとリフレクションが正常に動作しなくなるからである。この制限はコードの難読化の際にもあてはまり、勝手に識別子を変更・短縮してしまうとリフレクションが動作しなくなることがある。