in reply to Re^7: Confused as to why the "casting context" is mis-behaving (void,void,scalar)
in thread Confused as to why the "casting context" is mis-behaving

I've always thought it was that the compiler can't perform static analysis across function calls.

That would be a reason for the warning to not happen (and a reasonable one). It is not a reason for the context to be scalar rather than void.

But, yes, I tried to remember what was discussed when this inconsistency was brought up and threw in a half-remembered guess at the last minute. It turns out to be incorrect. The "useless use of constant in void context" doesn't happen for the return value of a sub, even when the sub is called in a void context.

I don't recall specific enough details about the last time this came up to have found a prior discussion of it. But I eventually stumbled upon ysth providing a much better explanation of this exception, Re: If you believe in Lists in Scalar Context, Clap your Hands (which I don't believe is even the discussion I was remembering).

- tye        

  • Comment on Re^8: Confused as to why the "casting context" is mis-behaving (void,void,scalar)