I consider this definition to be legacy cruft and usually just overshadow it with a proper dynamic array definition.
TStringArray for example is exactly what you'd expect, so why not make things consistent with
TIntegerArray?:
program Example;
{$mode objfpc} // <-- Implicitly `uses` the objpas unit
uses
SomeOtherUnit;
// Here `TIntegerArray` = array[0..$EFFFFFF] of Integer
type
TIntegerArray = array of Integer;
// Here `TIntegerArray` = array of Integer
// Original definition can be accessed using `objpas.TIntegerArray`
begin
end.
With the amount of legacy identifiers that FPC needs to support for compatibility's sake, it's a blessing that identifiers can be shadowed/redefined so easily.
