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 TGData<RDevice>)
  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

Reply via email to