title: What's compiler thinking about the switch-statement?
body: <p>Inspired from a <code>-5</code> question again!</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/15164318/is-empty-case-of-switch-in-c-sharp-combined-with-the-next-non-empty-one">Is empty case of switch in C# combined with the next non-empty one?</a></li>
  </ul>
  
  <p>I read [<a href="https://stackoverflow.com/questions/15164318/is-empty-case-of-switch-in-c-sharp-combined-with-the-next-non-empty-one/15165445#comment21476340_15165445">this comment</a>] of <a href="https://stackoverflow.com/users/364001/quartermeister">@Quartermeister</a> and been astonished!</p>
  
  <p>So why this compiles</p>
  
  <pre><code>switch(1) {
      case 2:
  }
  </code></pre>
  
  <p>but this doesn't. </p>
  
  <pre><code>int i;
  
  switch(i=1) {
      case 2: // Control cannot fall through from one case label ('case 2:') to another
  }
  </code></pre>
  
  <p>neither this</p>
  
  <pre><code>switch(2) {
      case 2: // Control cannot fall through from one case label ('case 2:') to another
  }
  </code></pre>
  
  <hr>
  
  <p>update: </p>
  
  <p>The <code>-5</code> question became <code>-3</code>. </p>