title: Not able to downcast a dynamic to a List<int> when used on a Map
body: <p>Let's start with:</p>
  <pre><code>dynamic list = [1];
  var ints = list as List&lt;int&gt;; // Works
  </code></pre>
  <p>I am downcasting <code>dynamic</code> typed <code>list</code> to a type of <code>List&lt;int&gt;</code> and it works. Now, let's take another example:</p>
  <pre><code>var jsonString = '{&quot;0&quot;: [1]}';
  var Map&lt;String, dynamic&gt; map = jsonDecode(jsonString);
  dynamic list = map['0'];
  var ints = list as List&lt;int&gt;; // Fails
  </code></pre>
  <p>This time I am doing the same thing, <code>list</code> is of type <code>dynamic</code> and I'm downcasting it to <code>List&lt;int&gt;</code> but it fails with an error:</p>
  <blockquote>
  <p><code>'List&lt;dynamic&gt;'</code> is not a subtype of type <code>'List&lt;int&gt;'</code> in type cast.</p>
  </blockquote>
  <p>Can anyone tell me why first code works but second fails?</p>
  <hr />
  <p><strong>Note</strong>: I am not looking for a solution on how to make 2nd code work, I know how to do that. The question is in 1st code <code>dynamic</code> can be downcasted to <code>List&lt;int&gt;</code> but in second it can't be. Why is that so?</p>