On 12 Jun 2010, at 11:00, Michael Van Canneyt wrote:

>>>  TestFunction := ActualParameter ( ) ; { compiles and runs o.k. }
>>> 
>> 

> [MVC:] The addition of () actually calls the function.
> 
>>>  TestFunction := ActualParameter ;     { gives "incompatible type" error, 
>>> but ... }
> 
> [MVC:] Here you try to assign the ActualParameter (a function pointer) to the
> result (an integer). This of course gives a type error.
> 
>>>  TestFunction := NamedFunction ;       { ... compiles and runs o.k. }

> [MVC:] This is simply a regular function call.

Sorry, but this simply wrong. The LRG (page 95) does not require an "actual 
parameter list" for a syntactically correct function call.

The call should be excecuted except in one case (LRG page 96) "... the compiler 
will not execute the function call ... when assigning a value to a procedural 
type variable". This is clearly not such a case.

Roger Bailey

P.S. The LRG has a minor error on page 121: "out parameter" appears twice as an 
alternative for "parameter declararion"

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

Reply via email to