On Thu, Mar 31, 2005 at 06:35:06PM +0200, Thomas Sandla▀ wrote:
: Is typing optional in the sense that it is no syntax error but
: otherwise ignored? To me this is pain but no gain :(
Well, you guys keep ignoring the answer. Let me put it a bit more
mathematically. The information in
my X $a;
is *necessary* but not *sufficient* to do method existence testing in
standard Perl 6 at compile time. You can do it IFF you have the class
information AND the classes are willing to cooperate in your scheme.
In the current design, you can pragmatically request that all classes
cooperate, and you will get the cooperation of all classes that haven't
specifically been requested to be non-cooperative. This is what all
the mumbo-jumbo about open/closed and final/non-final classes comes
One additional wrinkle is that *anyone* is allowed to declare a
class non-cooperative (open or non-final) during *any* part of the
compilation, so your method existence checking cannot be done at
reduction time, but must be done as a separate pass from a CHECK
block at the end of whatever lexical scope requested cooperation.
CHECK blocks are construed to be the end of "normal" compilation;
Perl 6 very much follows the Perl 5 model here.
I hope this clears things up a little.