Hi everyone,
So I reported this morning that Lazarus no longer builds as of r43826. Ondrej was quick to update the Lazarus sources to allow it to build again and marking the issue as fixed, but the underlying regression in the Free Pascal Compiler still exists.
Basically, the compiler failed on constructs like this
with
InputHistories.HistoryLists.GetList('BuildExecBefore',true,rltCaseSensitive)
do begin
Assign(ExecuteBeforeCommandComboBox.Items);
Push(Options.ExecuteBefore.Command);
end;The fix was to replace it with the following
(ide/frames/compiler_compilation_options.pas - line 394):
HL :=
InputHistories.HistoryLists.GetList('BuildExecBefore',true,rltCaseSensitive);
HL.Assign(ExecuteBeforeCommandComboBox.Items);
HL.Push(Options.ExecuteBefore.Command);Given the "illegal qualifier" errors that appeared, I'm guessing the issue is that "Options" is also a property of the THistoryList class as well as a local variable. Technically speaking though, this is a regression unless it's to be documented (and hence break backward compatibility) that if you have a property and a local variable of the same name, the property takes precedence.
Gareth aka. Kit
