[fpc-pascal] type helpers
Mattias Gaertner
nc-gaertnma at netcologne.de
Fri Jan 11 11:23:49 CET 2019
Hi,
A type helper can change Self.
I wondered how FPC 3.3.1 handles properties and got some
unexpected results. Is this by design, a bug, or not-yet-implemented?
{$mode objfpc}{$modeswitch typehelpers}
type
TIntHlp = type helper for word
procedure DoIt;
end;
TBig = class
strict private
FW: word;
procedure SetW(const AValue: word);
public
property W: word read FW write SetW;
end;
var b: TBird;
procedure TBig.SetW(const AValue: word);
begin
// not called by type helper
writeln('TBig.SetW');
end;
procedure TIntHlp.DoIt;
begin
writeln('TIntHlp.DoIt START ',Self,' w=',b.w);
Self:=4; // changes b.FW directly
writeln('TIntHlp.DoIt END ',Self,' w=',b.w);
end;
begin
b:=TBig.Create;
b.w.DoIt;
end.
Mattias
More information about the fpc-pascal
mailing list