Build broken with trunk FPC.
Recent FPC trunk changes related to generics and visibilities (freepascal.org/fpc/source#40621 (closed)) broke Lazarus build:
(1002) Target OS: Win64 for x64
(3104) Compiling dbgintfcommonstrings.pas
components\debuggerintf\dbgintfdebuggerbase.pp(592,22) Error: (5042) No matching implementation for interface method "SetMonitor(IDbgWatchesMonitorIntf);" found
components\debuggerintf\dbgintfdebuggerbase.pp(614,21) Error: (5042) No matching implementation for interface method "SetMonitor(IDbgLocalsMonitorIntf);" found
components\debuggerintf\dbgintfdebuggerbase.pp(1852,1) Fatal: (10026) There were 2 errors compiling module, stopping
But given that the non-generic equivalent of what happens in Lazarus
{$mode objfpc}
type
Eating = interface
procedure Eat;
end;
CustomEater = class(TInterfacedObject, Eating)
strict private // protected or better visibilities work
procedure Eat;
end;
procedure CustomEater.Eat;
begin
end;
type
FancyEater = class(CustomEater, Eating) // Error: No matching implementation for interface method "Eat;" found
end;
begin
end.
never worked in the first place, and the change made the generic counterpart not work as well which is consistent, I think that this is more likely the Lazarus issue rather than the FPC issue. (But I didn’t manage to “fix” it by guess by making SetMonitor
s protected
or so, so who knows...)
Edited by Rika