13

This unit fails to compile in XE2 Update 3 with "[DCC Fatal Error] Test.pas(22): F2084 Internal Error: 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.

I have submitted a QC report: QC#103671.

Does anyone have an idea about workaround for this?

Johan
  • 74,508
  • 24
  • 191
  • 319
BofA
  • 823
  • 7
  • 16

1 Answers1

15

If you replace TSorter declaration with TSorter<T> = procedure(var Values: TArray<T>); it compiles fine on XE.

Linas
  • 5,485
  • 1
  • 25
  • 35