title: mypy types issue - Possible overload variant
body: <p>I seem to get errors with the following piece of code using mypy</p>
  
  <pre><code>payload = {
      'flag': 'good'
  }
  payload = payload['flag']
  scheme: Dict[str, Dict[str, str]] = {
      'a_string': {
          'status': 'abc_string'
      }
  }
  
  scheme.get(payload).get('status')
  </code></pre>
  
  <p>or</p>
  
  <pre><code>payload = {
      'flag': 'good'
  }
  payload = payload['flag']
  scheme = {
      'a_string': {
          'status': 'abc_string'
      }
  }
  
  scheme.get(payload).get('status')
  </code></pre>
  
  <p>I get the following error:</p>
  
  <p>error: No overload variant of "get" of "Mapping" matches argument type "Dict[str, Any]"
              scheme.get(payload).get('status')</p>
  
  <p>But when the types are this:</p>
  
  <pre><code>payload = {
      'flag': 'good'
  }
  payload = payload['flag']
  scheme: Dict = {
      'a_string': {
          'status': 'abc_string'
      }
  }
  
  scheme.get(payload).get('status')
  </code></pre>
  
  <p>It works fine.</p>
  
  <p>Why does this behaviour happen?</p>