title: Swift switch statement considered all cases of Int, but compiler still display error
body: <p>I understand switch statement in Swift must be exhaustive, otherwise we have to provide an default case. I saw the code below online, the switch statement already have covered all cases in Int, but the compiler still display error message that switch must be exhaustive, consider adding a default clause. Is there something I'm missing?</p>
  
  <pre><code>extension Int {
      enum Kind {
          case Negative, Zero, Positive
      }
  
      var kind: Kind {
          switch self {
          case 0:
              return .Zero
          case let x where x &gt; 0:
              return .Positive
          case let x where x &lt; 0:
              return .Negative
          }
      }
  }
  </code></pre>