[fpc-pascal] FPC2.6 failed to raise compiler error Argument can't be assigned to' for Generic class' Record property in With clause

2013-12-13 Thread Dennis Poon

I think I found a bug in FPC 2.6.2.
In a method of a derived specialized class, the compiler does not raise 
error (which it should)

With record property do
   record property's field := NewValue   //it should raise error 
since it is a record property and should not be allowed to modify just 
one  field.


Please see below sample code for reproducing the error:

Dennis

--


Type

  RDevice=record
Value : String;
UpdatedAt : TDateTime;
  end;

  generic TGData TData =class(TComponent)
  private
FData :  TData;
  public
property Data : TData read FData;
  end;



  TDevice = class(specialize TGDataRDevice)
  published
procedure Test;
  end;

implementation

procedure TDevice.Test;
begin
  With Data do
Value := ''; //no Compiler Error raised !!!
  Data.Value := ''; //Compiler raised Error Argument can't be assigned to

end;





___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] FPC2.6 failed to raise compiler error Argument can't be assigned to' for Generic class' Record property in With clause

2013-12-13 Thread Sven Barth
Am 13.12.2013 11:07 schrieb Dennis Poon den...@avidsoft.com.hk:

 I think I found a bug in FPC 2.6.2.
 In a method of a derived specialized class, the compiler does not raise
error (which it should)
 With record property do
record property's field := NewValue   //it should raise error since
it is a record property and should not be allowed to modify just one  field.

 Please see below sample code for reproducing the error:

1. Not related to generics
2. Does not generate an error in trunk either

So, please report a bug.

Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal