title: Cast AnyObject? to [String:AnyObject?] always failing
body: <p>Initially I had this code in Swift 2.1 </p>
  
  <pre><code>func onSuccess(jsonData: AnyObject?){
      print(jsonData["message"]) 
  }
  </code></pre>
  
  <p>After I upgraded to Swift 2.2 , I got an error such as </p>
  
  <blockquote>
    <p>Ambiguous reference to 'subscript'</p>
  </blockquote>
  
  <p>for the line <code>print(jsonData["message"])</code></p>
  
  <p>I changed my code to this </p>
  
  <pre><code>func onSuccess(jsonData: AnyObject?) {
  
          let json = (jsonData as? [String:AnyObject?]) ?? ["":""]
          print(json)
  }
  </code></pre>
  
  <p>However this statement is always failing because AnyObject? to [String:AnyObject?] type casting is not happening and getting the nil coalescing value. I want to type cast from <code>AnyObject?</code> to <code>[String:AnyObject]</code>. Is it possible?</p>