Hello, I just joined this mailing list to mention an issue I found in Lazarus. <div><br></div><div>General description of the problem: Using new language features make working with Lazarus quite difficult.<br><div><br></div>
<div>The following wiki link outlines some of the new language features to the FPC bringing in compatibility with Delphi.</div><div><br></div><div><a href="http://wiki.freepascal.org/FPC_New_Features_Trunk#Generic_records.2C_arrays_and_procedural_types">http://wiki.freepascal.org/FPC_New_Features_Trunk#Generic_records.2C_arrays_and_procedural_types</a></div>
<div><br></div><div>Using the new generic language below in Lazarus causes the IDE to generate continual Lazarus parser error messages in the message window. When these errors occur, Lazarus opens and switches to the offending file, highlighting the line such as "function GetEnumerator: IEnumerator<T>;". These errors messages and switching to the offending file occur anytime code insight is requested (ctrl+space) or whenever the object inspector row changes on the events tabs. Additionally you cannot add events to components when any unit links to a unit with offending code (example):</div>
<div><br></div><div>{$mode delphi} </div><div><br></div><div>type</div><div><div> IEnumerable<T> = interface</div><div> function GetEnumerator: IEnumerator<T>; // parser breaks here continually</div><div>
end; </div></div><div><br></div><div><div>/path/unitname.pas(75,41) Error: expected end., but T found</div></div><div><br></div><div>The problem is that Lazarus's internal parser does not recognize the < in the line with "function GetEnumerator: IEnumerator<T>;" as a valid token, even though the code compiles with FPC 2.7.1 (trunk version) and {$mode delphi} perfectly fine.</div>
<div><br></div><div>Here are the details of my current Lazarus build:</div><div><br></div><div>Version: 0.9.31</div><div>SVN Revision: 32031</div><div>FPC Version: 2.7.1</div><div>i386-linux-gtk 2</div><div><br></div></div>