title: MyPy gives error "Missing return statement" even when all cases are tested
body: <p>I am getting a MyPy error "Missing return statement", even when I check for all possible cases inside a function.</p>
  
  <p>For example, in the following code, MyPy is still giving me an error <code>"9: error: Missing return statement"</code>, even though <code>color</code> can only be <code>Color.RED</code>, <code>Color.GREEN</code>, or <code>Color.BLUE</code>, and I test all those cases!</p>
  
  <pre><code>class Color(enum.IntEnum):
      RED: int = 1
      GREEN: int = 2
      BLUE: int = 3
  
  
  def test_enum(color: Color) -&gt; str:
      if color == Color.RED:
          return "red"
      elif color == Color.GREEN:
          return "green"
      elif color == Color.BLUE:
          return "blue"
  </code></pre>