On Tue, Mar 11, 2003 at 01:25:41PM +1100, Damian Conway wrote: : >3) The edge point between explicitly typed and explicitly non-typed : >variables: If you pass an "untyped" array (or list?) to an explicitly : >typed array parameter, is the "untyped" array considered a unique case, : >or will it fail? : > : > multi foo (@a is Array of int) {...} : > : > my int @a = baz(); # is Array of int : > my @b = baz(); # is Array of Scalar : > : > foo(@a); # @a is typed correctly, so OK : > foo(@b); # @b is not explicitly typed as C<int>; OK or FAIL? : : Fails. : : Because: : : not (Array of Scalar).isa(Array of int) : : Which in turn is because: : : not Scalar.isa(int)
I dunno. I can argue that it should coerce that. It'll certainly be able to coerce a random scalar to int for you, so it's not a big stretch to coerce conformant arrays of them. On the other hand, it's likely to be expensive in some cases, which isn't so much of an issue for single scalars/ints/strs. Larry