Что мне делать с внутренней ошибкой, когда я объявляю универсальный «массив T»? - PullRequest
13 голосов
/ 24 февраля 2012

Этому устройству не удается скомпилировать в XE2 Update 3 с «[DCC Fatal Error] Test.pas (22): F2084 Внутренняя ошибка: URW1147»

unit Test;

interface

type
  TSorter<T> = procedure(var Values: array of T);

  TTest = class
  public
    procedure Sort<T>(const Sorter: TSorter<T>);
  end;

implementation

procedure TTest.Sort<T>(const Sorter: TSorter<T>);
begin
end;

end.

Я отправил отчет о КК: КК # 103671 .

У кого-нибудь есть идеи об обходном пути для этого?

1 Ответ

15 голосов
/ 24 февраля 2012

Если вы замените объявление TSorter на TSorter<T> = procedure(var Values: TArray<T>);, оно отлично скомпилируется в XE.

...