For the other, but breaking, alternative of:
'a: {
fallible()'fn?.bar(); // exit fn, explicitly
fallible()'a?.bar(); // exit 'a, explicitly
fallible()?.bar(); // exit whatever's innermost
...
}
the only breaking change, if I’m correct, is the case of using ? from within a labelled loop:
'a: loop {
fallible()?.bar();
....
}
which already has a stable interpretation and implementation of exiting from the fn. This doesn’t apply to other labelled blocks though because they are not yet implemented or stable. So there exists no code like the following:
'a: {
fallible()?.bar();
}
I don’t know how common it is to use ? from whitin labelled loops, so I cannot estimate the amount of breakage. Perhaps not that bad?
The rustfix would be to automatically add 'fn to ? within loops.