specialize TFPGList<Int64> declaration is not supported by CodeTools
Original Reporter info from Mantis: tedsmith
-
Reporter name: TED SMITH
Original Reporter info from Mantis: tedsmith
- Reporter name: TED SMITH
Description:
I have a project built with Lazarus 1.4.4 and FPC 2.6.4. On that, all works fine.
The same project, when opened with Lazarus 1.6.0 and FPC 3.0 causes a problem. When I try to use the drop down properties of objects such as StringGrid.RequiredProperty, the properties do not appear and instead the messages windows reports the following :
myunit.pas(46,50) Error: expected ;, but TFPGList found
In the unit, I use the FGL unit in the uses section which is a unit for generics. One of the generics I use is a 64-bit list : TFPGList. It is declared as follows :
[code]
type
{64-bit TList declaration type, from the fgl unit }
TListInt64 = specialize TFPGList<Int64>;
TMyClass = class(TObject)
private
// none
public
...
function SaveOffsetsToFile(List : specialize TFPGList<Int64>; Filename : string) : boolean;
...
end;
[/code]
Specifically, the messages window reports that the following is invalid :
(List : specialize TFPGList&LtPos;Int64>; Filename : string)
In addition, when I type the name of functions like IntToHex, when I open the brackets, the system does not show the syntax help like it does usually. Again, whenever I open the brackets of any function, the same error is shown in the messages window.
Consequently, I can't use the 1.6 IDE of Lazarus and instead need to use v1.4.4 where everything works as normal with the same project.
I stress that a new project works fine, because I make no calls to specialize types nor use the FGL unit.
Mantis conversion info:
- Mantis ID: 30124
- OS: Windows
- OS Build: 7
- Build: 51630
- Version: 1.6