D15694: Make implicit fallthroughs a compiler error, remove unneeded breaks

René J.V. Bertin noreply at phabricator.kde.org
Sun Sep 23 20:33:51 BST 2018

rjvbb added a comment.

  >   Can you explain in more detail how an unreachable `break` after a `return` statement makes the code more readable?
  It's a shortist word that's easily recognisable that serves as a closing tag. Remove it, and my first impression will be that there's a fallthrough (because I'm not that used to returns in a switch). And a default: without break feels ... incomplete, makes me wonder if I missed a brace.
  >   until then we have to live with the all-caps.
  I'll point out that we're no longer living with Q_FOREACH and that nothing forbids anyone to provide a less conspicuous pattern than Q_FALLTHROUGH.
  >   Apart from that, fallthroughs are not very common, and one could argue that they should be drawing a reader's attention.
  Maybe, but there's also a reason why we avoid all-caps in things that have to be easily readable.
  >   When case labels follow directly after others, no annotation is necessary.
  I don't disagree, but it *is* an exception that you can easily extend to other cases where it's evident that a fallthrough is intended:
    switch (type) {
        case TYPE_A_OR_B:
           // it should be obvious that we're continuing straight to B
        case TYPE_B:
  After all that mumbling in my beard (because that's what it is really) I wouldn't be doing that so much if we were encouraged (or obliged) to use braces systematically:
    switch (type) {
        case A: {
            return theFavour;
        case B: {
        default: {

  R32 KDevelop


To: aaronpuchert, #kdevelop
Cc: rjvbb, brauch, mssola, kossebau, kdevelop-devel, glebaccon, antismap, iodelay, vbspam, geetamc, Pilzschaf, akshaydeo, surgenight, arrowd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20180923/23f8f58d/attachment.html>

More information about the KDevelop-devel mailing list