Delphi allows for overloaded default properties. FPC gives 'Error: Duplicate identifier'
Original Reporter info from Mantis: djenkins @dfjenkins
-
Reporter name: David Jenkins
Original Reporter info from Mantis: djenkins @dfjenkins
- Reporter name: David Jenkins
Description:
Following code compiles with Delphi fails with FPC
type
AClass = class
function GetStr(ANdx: Integer): string; overload;
function GetStr(AStr: String): string; overload;
public
property MyStr[ANdx: Integer]: string read GetStr; default;
property MyStr[AStr: string]: string read GetStr; default;
end;
Steps to reproduce:
compile following:
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
type
AClass = class
function GetStr(ANdx: Integer): string; overload;
function GetStr(AStr: String): string; overload;
public
property MyStr[ANdx: Integer]: string read GetStr; default;
property MyStr[AStr: string]: string read GetStr; default;
end;
function AClass.GetStr(ANdx: Integer): string;
begin
Result := 'str1';
end;
function AClass.GetStr(AStr: String): string;
begin
Result := 'str2';
end;
begin
end.
Additional information:
I believe that this worked in the past but code changes in SVN 19564 removed duplicate identifiers for a related issue and also removed duplicate properties.
Mantis conversion info:
- Mantis ID: 30088
- OS: OSX/Liinux
- Platform: OSX/Linux
- Version: 3.0.0
- Monitored by: » Nick_nnn (Николай)