Maceij, I did a build using your revision 33381. Compilation with "make all" worked with fpc 3.0.0 as a starting compiler. However my first test with it revealed a pretty serious bug:
program mytest; {$mode delphi} type TFoo = record private class operator Initialize(var aFoo: TFoo); class operator Finalize(var aFoo: TFoo); public F: Integer; end; TFooArray = array of TFoo; class operator TFoo.Initialize(var aFoo: TFoo); begin WriteLn; WriteLn('TFoo.Initialize'); aFoo.F := 1; end; class operator TFoo.Finalize(var aFoo: TFoo); begin aFoo.F := 3; WriteLn('TFoo.Finalize'); WriteLn; end; procedure Test; var Foos: TFooArray; begin SetLength(Foos, 5); WriteLn('Foos[0].F = ', Foos[0].F); WriteLn('Foos[1].F = ', Foos[1].F); WriteLn; end; begin Test; end. Outputs: Foos[0].F = 0 Foos[1].F = 0 TFoo.Finalize TFoo.Finalize TFoo.Finalize TFoo.Finalize TFoo.Finalize Notice: TFoo.Initialize is never invoked.
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel