Портирую относительно большой проект с Delphi2007
Наткнулся в двух местах на "неприятность" с названием проперти "System"
В коде ниже, всё валидно, но вылетает
Error: Illegal qualifier
либо
Error: identifier idents no member “AbstractError”.
и без указания модуля и строки (что было ужасно и ушло много времени чтоб найти где)
- Код: Выделить всё
TxxxSystem1 = class(TObject)
private
fSystem: Int64;
public
property Sysxxx: Int64 read fSystem;
property System: Int64 read fSystem; // Строка1
end;
TxxxSystem2 = class(TxxxSystem1)
public
procedure MetodAbstractxxxx; virtual; abstract; // Строка2
end;
При удалении либо Строки1 либо Строки2 всё компилируется

Переименование свойства влечёт за собой фатальные изменения, т.к находится в базовых классах от которых все зависят, и в текущей ситуации неприемлемо
Если убрать abstract;, и использовать пустышку то компилируется, но становится много мусора в модуле и класс становится не Абстрактным

Есть ли какие другие способы обойти это?