Jonas,

No. He's using MacPas mode in FPC 2.5.1. In that mode, nested procedural 
variables are supported (and also in ISO mode, and also in all other syntax 
modes if you add {$modeswitch nestedprocvars}). The error message was caused by 
a compiler bug.

This declares a regular procvar, while the original declaration declares a 
nested procvar. Declaring it as a separate type would have to be done like this:

Type TMyProc Procedure(var y:myObject) is nested;

Note that you can assign both global and nested/local procedures to a nested procedural 
variable (and also call both using such a procvar). And be careful when using a separate 
"is nested" type, because then you can construct code that calls a nested 
procedural variable outside the scope where it is valid (which will result in undefined 
behaviour).


thanks for the explanation, I didn't know all this. I don't use nested procedures as parameters, so from the error message I just assumed they weren't allowed.

Cheers, A.


--
Alberto Narduzzi
ANSware Ltd.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to