File: SetBridging.test

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (86 lines) | stat: -rw-r--r-- 2,589 bytes parent folder | download
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
// -*- mode: swift; -*-
// Test formatters on bridged sets in the REPL.
// REQUIRES: system-darwin
// REQUIRES: swift

// RUN: %lldb --repl < %s | FileCheck %s --check-prefix=SET

import Foundation

// Baseline case: empty Set
let s0: Set<Int> = []
// DICT-LABEL: s0: Set<Int> = 0 values

// All empty sets use the same type-punned storage class.
let s0b = s0 as NSSet
// DICT-LABEL: s0b: {{(__RawNativeSetStorage|__EmptySetSingleton)}} = 0 values

// Baseline case: native Set of non-verbatim bridged elements
let s1: Set<Int> = [1]
// SET-LABEL: s1: Set<Int> = 1 value {
// SET-NEXT:    [0] = 1
// SET-NEXT:  }

// Non-verbatim bridging from Swift to Objective-C
let s1b = s1 as NSSet
// SET-LABEL: s1b: _SwiftDeferredNSSet<Int> = 1 value {
// SET-NEXT:    [0] = 1
// SET-NEXT:  }

// Baseline case: native Set of verbatim bridged elements
let s2: Set<NSObject> = [NSNumber(value: 1)]
// SET-LABEL: s2: Set<NSObject> = 1 value {
// SET-NEXT:    [0] = Int64(1)
// SET-NEXT:  }

// Test formatters in Objective-C context.

// Empty singleton
let s_objc1 = NSArray(object: [] as Set<NSNumber> as NSSet)
// SET-LABEL: s_objc1: NSArray = 1 element {
// SET-NEXT:    [0] = 0 values
// SET-NEXT:  }

// Verbatim bridging
let s_objc2 = NSArray(object: [1] as Set<NSNumber> as NSSet)
// SET-LABEL: s_objc2: NSArray = 1 element {
// SET-NEXT:    [0] = 1 value {
// SET-NEXT:      [0] = Int64(1)
// SET-NEXT:    }
// SET-NEXT:  }

// Non-verbatim bridging
let s_objc3 = NSArray(object: [1] as Set<Int> as NSSet)
// SET-LABEL: s_objc3: NSArray = 1 element {
// SET-NEXT:    [0] = 1 value {
// SET-NEXT:      [0] = 1
// SET-NEXT:    }
// SET-NEXT:  }

// Verbatim bridging from Swift to Objective-C
let s2b = s2 as NSSet
// SET-LABEL: s2b: {{(_HashableTypedNativeSetStorage|_SetStorage)}}<NSObject> = 1 value {
// SET-NEXT:    [0] = Int64(1)
// SET-NEXT:  }

// Baseline case: NSSet
let s3 = NSSet(array: [NSNumber(value: 1), NSNumber(value: 2)])
// FIXME: NSSet's synthetic children formatters are currently broken.
// DISABLED-SET-LABEL: s3: NSSet = 2 elements {
// DISABLED-SET-NEXT:    [0] = Int64({{[12]}})
// DISABLED-SET-NEXT:    [1] = Int64({{[12]}})
// DISABLED-SET-NEXT:  }

// Verbatim bridging from Objective-C to Swift
let s3b = s3 as! Set<NSObject>
// SET-LABEL: s3b: Set<NSObject> = 2 values {
// SET-NEXT:    [0] = Int64({{[12]}})
// SET-NEXT:    [1] = Int64({{[12]}})
// SET-NEXT:  }

// Non-verbatim bridging from Objective-C to Swift
let s3b2 = s3 as! Set<Int>
// SET-LABEL: s3b2: Set<Int> = 2 values {
// SET-NEXT:    [0] = {{[12]}}
// SET-NEXT:    [1] = {{[12]}}
// SET-NEXT:  }