Ashley Winters skribis 2005-10-06 19:30 (-0700):
> >     my Array $a = 97;      # dies eventually, but when?
> Runtime -- cannot coerce Int value to Array

It is fully determinable at compile time. 97 will never be compatible
with Array, so I see no reason to wait.

Do remember that some programs run for weeks or months, rather than a
few seconds. It's nice to get all the certain failures during compile
time.

> >     sub foo (Int $arg) {...}
> >     foo("hello");          # should die at the latest when foo() is called
> $arg should be undef but Exception::InvalidInteger("Str value 'hello'
> cannot be coerced to an Int at $?LINE")

That'd be a problem with

    sub foo (Int $arg //= 5) { ... }

because the "hello" is then silently ignored eventually. But, these
unthrown exceptions should be emitted as warnings anyway, so it is not
really a problem, because everyone has warnings enabled all the time.

I wouldn't mind this to fail. If it fails, it can die or be undef,
depending on the user's wishes. In my case: die.

> If bar returns a Str ~~ /<Perl6::Grammar::Int>/, it gets coerced;
> otherwise, undef but Exception

"hello 5 worlds"?

/^<...>/ perhaps?

And I think we should match against Num, not Int, as it's very hard to
have a rule that matches just integers. 0.5e3 is an integer, but 0.5e-3
is not.

As stated in my previous message, I think that all numbers should be
parsed the same way, and interpreted as Nums.


Juerd
-- 
http://convolution.nl/maak_juerd_blij.html
http://convolution.nl/make_juerd_happy.html 
http://convolution.nl/gajigu_juerd_n.html

Reply via email to