 }
 
 // CHECK: Array-of-base cast produces [Derived, Derived, Base]
-obj = [Derived(), Derived(), Base()]
+obj = [Derived(), Derived(), Base()] as NSObject
 if let baseArr = obj as? [Base] {
   print("Array-of-base cast produces \(baseArr)")
 } else {

}

// CHECK: [Dictionary<String, [Dictionary<String, Int>]>] is
obj = [obj, obj, obj]
if let array = obj as? [Dictionary<String, [Dictionary<String, Int>]>] {
  print("[Dictionary<String, [Dictionary<String, Int>]>] is \(array)")
} else {

}

// CHECK: Dictionary<String, [Dictionary<String, Int>]> is ["a": [
obj = ["a" : dictArray] as NSObject
if let dict = obj as? Dictionary<String, [Dictionary<String, Int>]> {
  print("Dictionary<String, [Dictionary<String, Int>]> is \(dict)")
} else {
