Delphi 7以降の言語およびコンパイラの新機能
にある、「メソッドを持つレコード」を使っていたりするのですが、
的なコードで、
Hoge := (FPoints[i] - Position).Length;
とすると、コンパイルする時に、
[Pascal 致命的エラー] PathUnit.pas(98): F2084 内部エラー: URW821
とでて、プロジェクトが、コンパイル不能!
Quality Centralに報告発見……。
2007年3月に、Fixedされている模様。
Delphi2007では大丈夫なのかな?
Report #: 30131 : "Advanced" Records - Internal Errors URW821 and C1624
前にもバグらせて、Quality Central にバグ報告しましたが、
やっぱり、Delphi7以降の新機能の record 周りは鬼門だ。
完璧なもの出して、とは言いませんが、
パッチで直してホスィが、BDS2006はすでに無理!
ちなみに、今回の回避コードは、以下。
Hoge := (FPoints[i] - Position).Length;
ではなく、
で、OK。
recordの関数作った意味がないwwww
しかし、一見、機能拡張ではなく、
「コンパイルのバグのせいでDelphi2007より前では、
コンパイルが通らないコード」、っつーのが量産できそう orz
クソ!俺も、ベータテストに参加できれば!
と思って、参加要請出したのが、4ヶ月前……。
時間なくて(あるけど)、返事出してない(´・ω・`)
カテゴリ: [ Delphi ]