サンドボックスはWinter'13にアップグレードされていますが、本番環境はまだ古いバージョンのままです。次のコードは、サンドボックスでは「false」を出力しますが、本番環境では「true」を出力します。オンラインでこれについて言及しているようには見えませんが、動作が異なるようです。
Set<Id> x = new Set<Id>{
'012A0000000qv2wIAA'
,'012A0000000qv2xIAA'
,'012A0000000qv2yIAA'
,'012A0000000qv2zIAA'
};
System.debug(x.contains('012A0000000qv2z'));
セットには18文字のIDが含まれており、15文字のIDが.contains()されているかどうかを確認していることに注意してください。私はそれが何らかの方法で機能することを気にしません。動作が異なるのは奇妙なことです。
編集:文字列をIDに明示的にキャストすると、動作が環境間で一貫するようになることに気づきました。
System.debug(x.contains((Id)('012A0000000qv2z')));
では、Apexが新しいリリースでタイププロモーションルールを変更したのではないでしょうか。