1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
// -*- mode: swift; -*-
// Test formatters on bridged dictionaries in the REPL.
// REQUIRES: system-darwin
// REQUIRES: swift
// RUN: %lldb --repl < %s | FileCheck %s --check-prefix=DICT
import Foundation
// Baseline case: empty Dictionary
let d0: Dictionary<Int, Int> = [:]
// DICT-LABEL: d0: [Int : Int] = 0 key/value pairs
// All empty dictionaries use the same type-punned storage class.
let d0b = d0 as NSDictionary
// DICT-LABEL: d0b: {{(__RawNativeDictionaryStorage|__EmptyDictionarySingleton)}} = 0 key/value pairs
// Baseline case: native Dictionary of non-verbatim bridged elements
let d1: Dictionary<Int,Int> = [1:2]
// DICT-LABEL: d1: [Int : Int] = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = 1
// DICT-NEXT: value = 2
// DICT-NEXT: }
// DICT-NEXT: }
// Non-verbatim bridging from Swift to Objective-C
let d1b = d1 as NSDictionary
// DICT-LABEL: d1b: _SwiftDeferredNSDictionary<Int, Int> = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = 1
// DICT-NEXT: value = 2
// DICT-NEXT: }
// DICT-NEXT: }
// Baseline case: native Dictionary of verbatim bridged elements
let d2: Dictionary<NSObject,AnyObject> = [
NSNumber(value: 1): NSNumber(value: 2),
]
// DICT-LABEL: d2: [NSObject : AnyObject] = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = Int64(1)
// DICT-NEXT: value = Int64(2)
// DICT-NEXT: }
// DICT-NEXT: }
// Test formatters in Objective-C context.
// Empty singleton
let d_objc1 = NSArray(object: [:] as [NSNumber: NSNumber] as NSDictionary)
// DICT-LABEL: d_objc1: NSArray = 1 element {
// DICT-NEXT: [0] = 0 key/value pairs
// DICT-NEXT: }
// Verbatim bridging
let d_objc2 = NSArray(object: [1: 2] as [NSNumber: NSNumber] as NSDictionary)
// DICT-LABEL: d_objc2: NSArray = 1 element {
// DICT-NEXT: [0] = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = Int64(1)
// DICT-NEXT: value = Int64(2)
// DICT-NEXT: }
// DICT-NEXT: }
// DICT-NEXT: }
// Non-verbatim bridging
let d_objc3 = NSArray(object: [1: 2] as [Int: Int] as NSDictionary)
// DICT-LABEL: d_objc3: NSArray = 1 element {
// DICT-NEXT: [0] = 1 key/value pair {
// DICT-NEXT: [0] = (key = 1, value = 2)
// DICT-NEXT: }
// DICT-NEXT: }
// Verbatim bridging from Swift to Objective-C
let d2b = d2 as NSDictionary
// DICT-LABEL: d2b: {{(_HashableTypedNativeDictionaryStorage|_DictionaryStorage)}}<NSObject, AnyObject> = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = Int64(1)
// DICT-NEXT: value = Int64(2)
// DICT-NEXT: }
// DICT-NEXT: }
// Baseline case: NSDictionary
let d3 = NSDictionary(
object: NSNumber(value: 2),
forKey: NSNumber(value: 1)
)
// DICT-LABEL: d3: NSDictionary = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = Int64(1)
// DICT-NEXT: value = Int64(2)
// DICT-NEXT: }
// DICT-NEXT: }
// Verbatim bridging from Objective-C to Swift
let d3b = d3 as! [NSObject: NSObject]
// DICT-LABEL: d3b: [NSObject : NSObject] = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = Int64(1)
// DICT-NEXT: value = Int64(2)
// DICT-NEXT: }
// DICT-NEXT: }
// Non-verbatim bridging from Objective-C to Swift
let d3b2 = d3 as! [Int: Int]
// DICT-LABEL: d3b2: [Int : Int] = 1 key/value pair {
// DICT-NEXT: [0] = {
// DICT-NEXT: key = 1
// DICT-NEXT: value = 2
// DICT-NEXT: }
// DICT-NEXT: }
|