@@ -1983,7 +1983,8 @@ SetTestSuite.test("BridgedFromObjC.Verbatim.RemoveAll") {
1983
1983
}
1984
1984
1985
1985
SetTestSuite . test ( " BridgedFromObjC.Nonverbatim.RemoveAll " ) {
1986
- do {
1986
+ if #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) {
1987
+ // Identity of empty sets changed in https://github.com/apple/swift/pull/22527
1987
1988
var s = getBridgedNonverbatimSet ( [ ] )
1988
1989
expectTrue ( isNativeSet ( s) )
1989
1990
expectEqual ( 0 , s. count)
@@ -2174,6 +2175,10 @@ SetTestSuite.test("BridgedFromObjC.Verbatim.EqualityTest_Empty") {
2174
2175
}
2175
2176
2176
2177
SetTestSuite . test ( " BridgedFromObjC.Nonverbatim.EqualityTest_Empty " ) {
2178
+ guard #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) else {
2179
+ // Identity of empty sets changed in https://github.com/apple/swift/pull/22527
2180
+ return
2181
+ }
2177
2182
let s1 = getBridgedNonverbatimSet ( [ ] )
2178
2183
let identity1 = s1. _rawIdentifier ( )
2179
2184
expectTrue ( isNativeSet ( s1) )
@@ -4649,45 +4654,49 @@ SetTestSuite.test("IndexValidation.RemoveAt.AfterGrow") {
4649
4654
}
4650
4655
4651
4656
#if _runtime(_ObjC)
4652
- SetTestSuite . test ( " ForcedNonverbatimBridge.Trap.String " )
4657
+ if #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) {
4658
+ // https://github.com/apple/swift/pull/23174
4659
+ SetTestSuite . test ( " ForcedNonverbatimBridge.Trap.String " )
4653
4660
. skip ( . custom(
4654
- { _isFastAssertConfiguration ( ) } ,
4655
- reason: " this trap is not guaranteed to happen in -Ounchecked " ) )
4661
+ { _isFastAssertConfiguration ( ) } ,
4662
+ reason: " this trap is not guaranteed to happen in -Ounchecked " ) )
4656
4663
. crashOutputMatches ( " Could not cast value of type " )
4657
4664
. code {
4665
+ let s1 : NSSet = [
4666
+ " Gordon " as NSString ,
4667
+ " William " as NSString ,
4668
+ " Katherine " as NSString ,
4669
+ " Lynn " as NSString ,
4670
+ " Brian " as NSString ,
4671
+ 1756 as NSNumber ]
4658
4672
4659
- let s1 : NSSet = [
4660
- " Gordon " as NSString ,
4661
- " William " as NSString ,
4662
- " Katherine " as NSString ,
4663
- " Lynn " as NSString ,
4664
- " Brian " as NSString ,
4665
- 1756 as NSNumber ]
4666
-
4667
- expectCrashLater ( )
4668
- _ = s1 as! Set < String >
4673
+ expectCrashLater ( )
4674
+ _ = s1 as! Set < String >
4675
+ }
4669
4676
}
4670
4677
#endif
4671
4678
4672
4679
#if _runtime(_ObjC)
4673
- SetTestSuite . test ( " ForcedNonverbatimBridge.Trap.Int " )
4680
+ if #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) {
4681
+ // https://github.com/apple/swift/pull/23174
4682
+ SetTestSuite . test ( " ForcedNonverbatimBridge.Trap.Int " )
4674
4683
. skip ( . custom(
4675
4684
{ _isFastAssertConfiguration ( ) } ,
4676
4685
reason: " this trap is not guaranteed to happen in -Ounchecked " ) )
4677
4686
. crashOutputMatches ( " Could not cast value of type " )
4678
4687
. code {
4688
+ let s1 : NSSet = [
4689
+ 4 as NSNumber ,
4690
+ 8 as NSNumber ,
4691
+ 15 as NSNumber ,
4692
+ 16 as NSNumber ,
4693
+ 23 as NSNumber ,
4694
+ 42 as NSNumber ,
4695
+ " John " as NSString ]
4679
4696
4680
- let s1 : NSSet = [
4681
- 4 as NSNumber ,
4682
- 8 as NSNumber ,
4683
- 15 as NSNumber ,
4684
- 16 as NSNumber ,
4685
- 23 as NSNumber ,
4686
- 42 as NSNumber ,
4687
- " John " as NSString ]
4688
-
4689
- expectCrashLater ( )
4690
- _ = s1 as! Set < Int >
4697
+ expectCrashLater ( )
4698
+ _ = s1 as! Set < Int >
4699
+ }
4691
4700
}
4692
4701
#endif
4693
4702
@@ -4800,61 +4809,70 @@ SetTestSuite.test("ForcedVerbatimDowncast.Trap.Int")
4800
4809
#endif
4801
4810
4802
4811
#if _runtime(_ObjC)
4803
- SetTestSuite . test ( " ForcedBridgingNonverbatimDowncast.Trap.String " )
4812
+ if #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) {
4813
+ // https://github.com/apple/swift/pull/23174
4814
+ SetTestSuite . test ( " ForcedBridgingNonverbatimDowncast.Trap.String " )
4804
4815
. skip ( . custom(
4805
4816
{ _isFastAssertConfiguration ( ) } ,
4806
4817
reason: " this trap is not guaranteed to happen in -Ounchecked " ) )
4807
4818
. crashOutputMatches ( " Could not cast value of type " )
4808
4819
. code {
4809
- let s1 : Set < NSObject > = [
4810
- " Gordon " as NSString ,
4811
- " William " as NSString ,
4812
- " Katherine " as NSString ,
4813
- " Lynn " as NSString ,
4814
- " Brian " as NSString ,
4815
- 1756 as NSNumber ]
4816
- expectCrashLater ( )
4817
- // Nonverbatim downcasts are greedy and they trap immediately.
4818
- let s2 = s1 as! Set < String >
4819
- _ = s2. contains ( " Gordon " )
4820
+ let s1 : Set < NSObject > = [
4821
+ " Gordon " as NSString ,
4822
+ " William " as NSString ,
4823
+ " Katherine " as NSString ,
4824
+ " Lynn " as NSString ,
4825
+ " Brian " as NSString ,
4826
+ 1756 as NSNumber ]
4827
+ expectCrashLater ( )
4828
+ // Nonverbatim downcasts are greedy and they trap immediately.
4829
+ let s2 = s1 as! Set < String >
4830
+ _ = s2. contains ( " Gordon " )
4831
+ }
4820
4832
}
4821
4833
#endif
4822
4834
4823
4835
#if _runtime(_ObjC)
4824
- SetTestSuite . test ( " ForcedBridgingNonverbatimDowncast.Trap.Int " )
4836
+ if #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) {
4837
+ // https://github.com/apple/swift/pull/23174
4838
+ SetTestSuite . test ( " ForcedBridgingNonverbatimDowncast.Trap.Int " )
4825
4839
. skip ( . custom(
4826
4840
{ _isFastAssertConfiguration ( ) } ,
4827
4841
reason: " this trap is not guaranteed to happen in -Ounchecked " ) )
4828
4842
. crashOutputMatches ( " Could not cast value of type " )
4829
4843
. code {
4830
- let s1 : Set < NSObject > = [
4831
- 4 as NSNumber ,
4832
- 8 as NSNumber ,
4833
- 15 as NSNumber ,
4834
- 16 as NSNumber ,
4835
- 23 as NSNumber ,
4836
- 42 as NSNumber ,
4837
- " John " as NSString ]
4838
- expectCrashLater ( )
4839
- // Nonverbatim downcasts are greedy and they trap immediately.
4840
- let s2 = s1 as! Set < Int >
4841
- _ = s2. contains ( 23 )
4844
+ let s1 : Set < NSObject > = [
4845
+ 4 as NSNumber ,
4846
+ 8 as NSNumber ,
4847
+ 15 as NSNumber ,
4848
+ 16 as NSNumber ,
4849
+ 23 as NSNumber ,
4850
+ 42 as NSNumber ,
4851
+ " John " as NSString ]
4852
+ expectCrashLater ( )
4853
+ // Nonverbatim downcasts are greedy and they trap immediately.
4854
+ let s2 = s1 as! Set < Int >
4855
+ _ = s2. contains ( 23 )
4856
+ }
4842
4857
}
4843
4858
#endif
4844
4859
4845
4860
#if _runtime(_ObjC)
4846
- SetTestSuite . test ( " Upcast.StringEqualityMismatch " ) {
4847
- // Upcasting from NSString to String keys changes their concept of equality,
4848
- // resulting in two equal keys, one of which should be discarded by the
4849
- // downcast. (Along with its associated value.)
4850
- // rdar://problem/35995647
4851
- let s : Set < NSString > = [
4852
- " cafe \u{301} " ,
4853
- " café "
4854
- ]
4855
- expectEqual ( s. count, 2 )
4856
- let s2 = s as Set < String >
4857
- expectEqual ( s2. count, 1 )
4861
+ if #available( macOS 9999 , iOS 9999 , watchOS 9999 , tvOS 9999 , * ) {
4862
+ // https://github.com/apple/swift/pull/23683
4863
+ SetTestSuite . test ( " Upcast.StringEqualityMismatch " ) {
4864
+ // Upcasting from NSString to String keys changes their concept of equality,
4865
+ // resulting in two equal keys, one of which should be discarded by the
4866
+ // downcast. (Along with its associated value.)
4867
+ // rdar://problem/35995647
4868
+ let s : Set < NSString > = [
4869
+ " cafe \u{301} " ,
4870
+ " café "
4871
+ ]
4872
+ expectEqual ( s. count, 2 )
4873
+ let s2 = s as Set < String >
4874
+ expectEqual ( s2. count, 1 )
4875
+ }
4858
4876
}
4859
4877
#endif
4860
4878
0 commit comments