On 10/20/19 2:39 AM, Mike Schinkel wrote:
>> case X:
>>      if (something) {
>>              fallthrough;
>>        }
>>      something-else;
>>      break;
>> case Y: ....
> 
> Interesting. 
> 
> What would you expect this to do?  It is not intuitively obvious to me.

Directly jump to the next `case` (as `goto` would do).

Also, fallthrough probably shouldn't be just a no-op, it should be jump. 
Consider this code

case X:
   fallthrough;
   break;
case Y:

It should be clear what would happen in such cases.

>> Then, don't we need a way to jump outside of the whole switch statement? Ah, 
>> there's `goto` already. So, maybe extend `goto` somehow?
> 
> Is that not what `break` is for?

Right. I was too much on throwing new ideas that I missed that some are already
implemented ;). The point was that fallthrough with these added functionality 
mentioned
above would be very close to `goto`. On the other hand:

case X:
   goto next; // or goto case; ?
case Y:

sounds worse than:

case X:
   fallthrough;
case Y:

or

case X:
   pass;
case Y:

> The fact a potential feature is a no-op does not discredit it for me; instead 
> I focus on the benefits the proposed feature can provide. 
> 
> In this case the benefits would be to alerting developer when they 
> accidentally omit instructions to PHP of their intentions. And that seems to 
> me to be something (almost?) everyone would want to see embraced?  Clearly* 
> PHPStan and many Linux developers would like the same[1][2].

Maybe if it was a feature (keyword) that could be useful in other places not 
only in
switch...

I proposed "pass" because it might have some uses out of switch (nothing comes 
to my mind,
though right now) and because "fallthrough" is kinda hard word for non-native 
speakers.

"pass" exists in Python. https://docs.python.org/2.0/ref/pass.html

>> It might be not useful enough to justify a BC break.

That was my intention, to find more value in a new feature to justify BC break.

-- 
Aleksander 'A.L.E.C' Machniak
Kolab Groupware Developer         [http://kolab.org]
Roundcube Webmail Developer   [http://roundcube.net]
----------------------------------------------------
PGP: 19359DC1 # Blog: https://kolabian.wordpress.com

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to