Hi. Why does this fail to compile with FPC 2.3.1? (from ZeosLib):

procedure TZExpression.SetTokenizer(Value: IZTokenizer);
var
  Parser: TZExpressionParser;
begin
  FTokenizer := Value;
  TZExpressionParser(FParser).Tokenizer := Value; // <-- This line fails
end;

FParser is declared as TObject and assigned a TZExpressionParser at runtime. 
Tokenizer is a property of TZExpressionParser of type IZTokenizer that gives 
direct access to the field FTokenizer of the same class.

The error message says:

ZExpression.pas(479,20) Error: Can't take the address of constant expressions

I googled a little and found that this error message is associated to trying 
to use a property as a var parameter or to try to modify a member of a value 
returned by a property, but this isn't any of those cases. May the problem be 
the property is of an interface type?

Thanks,
Mario
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to