title: Swift 3.0 : Ambiguous reference to member 'Subscript' issue
body: <p>I have got an unusual problem in swift 2.3 to Swift 3.0. Once I convert the code from 2.3 to 3.0, i am getting this issue:'Ambiguous reference to member 'Subscript', </p>
  
  <p>Code are :</p>
  
  <pre><code>dynamic func onDataNotification(notification: NSNotification) {
          var data = notification.userInfo as! Dictionary&lt;NSString, ARoutedMessage&gt;
          if let packet = data[AEnginePacketDataKey] as? AEngineMessage,
          currentDevice = self.currentDevice() {
              if packet.messageId == MessageId.message &amp;&amp; currentDevice.isDevice() {
  // Some code 
              }
          }
      } 
  </code></pre>
  
  <p>Getting error on let packet = data[AEnginePacketDataKey] as Ambiguous reference to member 'Subscript', I don't understand why?. Other:</p>
  
  <pre><code>// String 
  extern NSString *AEnginePacketDataKey;
  
  //ARoutedMessage Class
  @interface ARoutedMessage : NSObject
  @property NSMutableArray *payloadParameters;
  @end
  
  //AEngineMessage Class
  @interface AEngineMessage : ARoutedMessage
  @property (readonly)MessageId messageId;
  - (id) initWithMessageId:(MessageId) mId;
  @end
  </code></pre>
  
  <p>Please help me out.</p>