Tja, wenn man mal genau hinsieht, wo der Cursor steht, nach/nei dieser Fehlermeldung, dann wird es klar.
Es wird direkt nach dem [ geprüft ob es "irgendwelche" Arrays gibt und da es mehrere Arrays gibt, kann sich der Kompiler nicht entscheiden, da er den Inhalt des Arrays wohl erst später auswertet und so noch nicht weiß was es für ein Array wird ... nun findet er aber mehrere Array-Deklarationen und muß aufgeben.
Bin grad zu einem ähnlichen Schluss gekommen:
Delphi-Quellcode:
procedure P(const AStrings: array of string); overload;
procedure P(const ANumbers: array of Byte); overload;
und z.B.
P(['bla', 'je']);
führen zum gleichen Fehler. Scheinbar wirft Delphi bei der Auflösung von Überladungen alle (offenen?) Array-Typen in einen Topf.
Edit: Dieser QC-Eintrag beschreibt ein verwandtes Problem. Den Fehler aus dem OP konnte ich in der
QC nicht finden.