{ %NORUN } program tw22468; {$MODE DELPHI} type TArray<T> = array of T; TWrapper<TValue> = record private type TValueArray = TArray<TValue>; public class procedure Z; static; end; {$PUSH}{$MACRO ON} {$DEFINE TWrapper__Z := var a: TValueArray; begin end } class procedure TWrapper<TValue>.Z; TWrapper__Z; {$POP} begin end.