ActionScript で、Date を Date にキャストし、それを Date 型の変数に代入すると TypeError がスローされることを発見しました。
var date : Date = Date(new Date(2012, 01, 01));
Error #1034: Type Coercion failed: cannot convert "Wed Aug 22 17:06:54 GMT+1000 2012" to Date.
これは明らかに間違っていますが、なぜそれが起こるのか知りたいです。私の理論では、日付キャストは、数値キャストと同様に、指定された型を単にキャストするのではなく、変換しようとするためにオーバーライドされています。
興味深いことに、他のものを Date にキャストして Date に割り当てることも失敗します。
var date : Date = Date("1/2/3");
var date : Date = Date(123);
// (Both fail)
ただし、オブジェクトへの割り当ては成功します。
var object : Object = Date(new Date(2012, 01, 01));
var object : Object = Date("1/2/3");
var object : Object = Date(123);
// (All succeed)