[stdlib] Migrate remaining stdlib tests from Swift 3 (#18740)
* Migrate remaining stdlib tests from Swift 3
* Fix misprunt
* Remove seemingly pointless loops
diff --git a/test/stdlib/ArrayBridge.swift.gyb b/test/stdlib/ArrayBridge.swift.gyb
index c0b8fed..6e02d9b 100644
--- a/test/stdlib/ArrayBridge.swift.gyb
+++ b/test/stdlib/ArrayBridge.swift.gyb
@@ -14,7 +14,7 @@
//
// RUN: %gyb %s -o %t/ArrayBridge.swift
// RUN: %target-clang %S/Inputs/ArrayBridge/ArrayBridge.m -c -o %t/ArrayBridgeObjC.o -g
-// RUN: %line-directive %t/ArrayBridge.swift -- %target-build-swift %t/ArrayBridge.swift -I %S/Inputs/ArrayBridge/ -Xlinker %t/ArrayBridgeObjC.o -o %t/ArrayBridge -swift-version 3 --
+// RUN: %line-directive %t/ArrayBridge.swift -- %target-build-swift %t/ArrayBridge.swift -I %S/Inputs/ArrayBridge/ -Xlinker %t/ArrayBridgeObjC.o -o %t/ArrayBridge -swift-version 4.2 --
// RUN: %target-codesign %t/ArrayBridge
// RUN: %target-run %t/ArrayBridge
@@ -127,7 +127,7 @@
// A class used to test various Objective-C thunks.
class Thunks : NSObject {
- func createSubclass(_ value: Int) -> AnyObject {
+ @objc func createSubclass(_ value: Int) -> AnyObject {
return Subclass(value)
}
@@ -296,8 +296,8 @@
let bridgeableValuesAsNSArray = bridgeableValues as NSArray
expectEqual(2, bridgeableValuesAsNSArray.count)
- expectEqual(42, (bridgeableValuesAsNSArray[0] as AnyObject).value)
- expectEqual(17, (bridgeableValuesAsNSArray[1] as AnyObject).value)
+ expectEqual(42, (bridgeableValuesAsNSArray[0] as! Subclass).value)
+ expectEqual(17, (bridgeableValuesAsNSArray[1] as! Subclass).value)
// Make sure we can bridge back.
let roundTrippedValues = Swift._forceBridgeFromObjectiveC(
diff --git a/test/stdlib/Intents.swift b/test/stdlib/Intents.swift
index 91a9bff..41f5d76 100644
--- a/test/stdlib/Intents.swift
+++ b/test/stdlib/Intents.swift
@@ -1,6 +1,6 @@
// RUN: %empty-directory(%t)
-// RUN: %target-build-swift %s -o %t/a.out3 -swift-version 3 && %target-codesign %t/a.out3 && %target-run %t/a.out3
// RUN: %target-build-swift %s -o %t/a.out4 -swift-version 4 && %target-codesign %t/a.out4 && %target-run %t/a.out4
+// RUN: %target-build-swift %s -o %t/a.out42 -swift-version 4.2 && %target-codesign %t/a.out42 && %target-run %t/a.out42
// REQUIRES: executable_test
// REQUIRES: objc_interop
@@ -11,11 +11,7 @@
let IntentsTestSuite = TestSuite("Intents")
-#if swift(>=4)
let swiftVersion = "4"
-#else
-let swiftVersion = "3"
-#endif
if #available(OSX 10.12, iOS 10.0, watchOS 3.2, *) {
@@ -46,10 +42,6 @@
func f(profile: INSetProfileInCarIntent) {
var isDefaultProfile = profile.isDefaultProfile
expectType(Bool?.self, &isDefaultProfile)
-#if !swift(>=4)
- var defaultProfile = profile.defaultProfile
- expectType(Int?.self, &defaultProfile)
-#endif
}
}
}
diff --git a/test/stdlib/UIKit.swift b/test/stdlib/UIKit.swift
index 92759b2..41d5d8f 100644
--- a/test/stdlib/UIKit.swift
+++ b/test/stdlib/UIKit.swift
@@ -1,5 +1,4 @@
// RUN: %empty-directory(%t)
-// RUN: %target-build-swift -swift-version 3 %s -o %t/a.out3 && %target-codesign %t/a.out3 && %target-run %t/a.out3
// RUN: %target-build-swift -swift-version 4 %s -o %t/a.out4 && %target-codesign %t/a.out4 && %target-run %t/a.out4
// RUN: %target-build-swift -swift-version 4.2 %s -o %t/a.out4_2 && %target-codesign %t/a.out4_2 && %target-run %t/a.out4_2
// REQUIRES: executable_test
@@ -12,10 +11,8 @@
#if swift(>=4.2)
let UIKitTests = TestSuite("UIKit_Swift4_2")
-#elseif swift(>=4)
- let UIKitTests = TestSuite("UIKit_Swift4")
#else
- let UIKitTests = TestSuite("UIKit_Swift3")
+ let UIKitTests = TestSuite("UIKit_Swift4")
#endif
#if !os(watchOS) && !os(tvOS)
@@ -144,41 +141,26 @@
#if !os(watchOS)
UIKitTests.test("UILayoutPriority") {
- #if swift(>=4) // Swift 4
- let lowLayoutPriority: UILayoutPriority = .defaultLow
- let highLayoutPriority: UILayoutPriority = .defaultHigh
+ let lowLayoutPriority: UILayoutPriority = .defaultLow
+ let highLayoutPriority: UILayoutPriority = .defaultHigh
- expectTrue(lowLayoutPriority < highLayoutPriority)
+ expectTrue(lowLayoutPriority < highLayoutPriority)
- expectTrue(lowLayoutPriority + 2.0 == UILayoutPriority(lowLayoutPriority.rawValue + 2.0))
- expectTrue(2.0 + lowLayoutPriority == UILayoutPriority(lowLayoutPriority.rawValue + 2.0))
- expectTrue(lowLayoutPriority - 2.0 == UILayoutPriority(lowLayoutPriority.rawValue - 2.0))
- expectTrue(highLayoutPriority - lowLayoutPriority == highLayoutPriority.rawValue - lowLayoutPriority.rawValue)
+ expectTrue(lowLayoutPriority + 2.0 == UILayoutPriority(lowLayoutPriority.rawValue + 2.0))
+ expectTrue(2.0 + lowLayoutPriority == UILayoutPriority(lowLayoutPriority.rawValue + 2.0))
+ expectTrue(lowLayoutPriority - 2.0 == UILayoutPriority(lowLayoutPriority.rawValue - 2.0))
+ expectTrue(highLayoutPriority - lowLayoutPriority == highLayoutPriority.rawValue - lowLayoutPriority.rawValue)
- expectTrue(lowLayoutPriority + (highLayoutPriority - lowLayoutPriority) == highLayoutPriority)
+ expectTrue(lowLayoutPriority + (highLayoutPriority - lowLayoutPriority) == highLayoutPriority)
- var mutablePriority = lowLayoutPriority
- mutablePriority -= 1.0
- mutablePriority += 2.0
- expectTrue(mutablePriority == lowLayoutPriority + 1.0)
+ var mutablePriority = lowLayoutPriority
+ mutablePriority -= 1.0
+ mutablePriority += 2.0
+ expectTrue(mutablePriority == lowLayoutPriority + 1.0)
- let priorotyRange = lowLayoutPriority...highLayoutPriority
- expectTrue(priorotyRange.contains(.defaultLow))
- expectFalse(priorotyRange.contains(.required))
- #else // Swift 3
- let lowLayoutPriority: UILayoutPriority = UILayoutPriorityDefaultLow
- let highLayoutPriority: UILayoutPriority = UILayoutPriorityDefaultHigh
-
- expectTrue(lowLayoutPriority < highLayoutPriority)
-
- expectTrue(2.0 + lowLayoutPriority == lowLayoutPriority + 2.0)
- expectTrue(lowLayoutPriority + (highLayoutPriority - lowLayoutPriority) == highLayoutPriority)
-
- var mutablePriority = lowLayoutPriority
- mutablePriority -= 1.0
- mutablePriority += 2.0
- expectTrue(mutablePriority == lowLayoutPriority + 1.0)
- #endif
+ let priorotyRange = lowLayoutPriority...highLayoutPriority
+ expectTrue(priorotyRange.contains(.defaultLow))
+ expectFalse(priorotyRange.contains(.required))
}
#endif
diff --git a/validation-test/stdlib/ArrayBridging.swift b/validation-test/stdlib/ArrayBridging.swift
index 8d77975..3fd92fa 100644
--- a/validation-test/stdlib/ArrayBridging.swift
+++ b/validation-test/stdlib/ArrayBridging.swift
@@ -2,7 +2,7 @@
//
// RUN: %target-clang -fobjc-arc %S/Inputs/SlurpFastEnumeration/SlurpFastEnumeration.m -c -o %t/SlurpFastEnumeration.o
// RUN: echo '#sourceLocation(file: "%s", line: 1)' > "%t/main.swift" && cat "%s" >> "%t/main.swift" && chmod -w "%t/main.swift"
-// RUN: %target-build-swift -Xfrontend -disable-access-control -I %S/Inputs/SlurpFastEnumeration/ %t/main.swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift -Xlinker %t/SlurpFastEnumeration.o -o %t.out -O -swift-version 3
+// RUN: %target-build-swift -Xfrontend -disable-access-control -I %S/Inputs/SlurpFastEnumeration/ %t/main.swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift -Xlinker %t/SlurpFastEnumeration.o -o %t.out -O -swift-version 4
// RUN: %target-run %t.out
// REQUIRES: executable_test
diff --git a/validation-test/stdlib/ArrayNew.swift.gyb b/validation-test/stdlib/ArrayNew.swift.gyb
index b6e72d3..4bf3cae 100644
--- a/validation-test/stdlib/ArrayNew.swift.gyb
+++ b/validation-test/stdlib/ArrayNew.swift.gyb
@@ -3,9 +3,9 @@
// RUN: %gyb %s -o %t/main.swift
// RUN: if [ %target-runtime == "objc" ]; then \
// RUN: %target-clang -fobjc-arc %S/Inputs/SlurpFastEnumeration/SlurpFastEnumeration.m -c -o %t/SlurpFastEnumeration.o; \
-// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift %t/main.swift -I %S/Inputs/SlurpFastEnumeration/ -Xlinker %t/SlurpFastEnumeration.o -o %t/Array -Xfrontend -disable-access-control -swift-version 3; \
+// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift %t/main.swift -I %S/Inputs/SlurpFastEnumeration/ -Xlinker %t/SlurpFastEnumeration.o -o %t/Array -Xfrontend -disable-access-control -swift-version 4.2; \
// RUN: else \
-// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %t/main.swift -o %t/Array -Xfrontend -disable-access-control -swift-version 3; \
+// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %t/main.swift -o %t/Array -Xfrontend -disable-access-control -swift-version 4.2; \
// RUN: fi
// RUN: %target-codesign %t/Array && %line-directive %t/main.swift -- %target-run %t/Array
// REQUIRES: executable_test
@@ -372,7 +372,7 @@
expectEqual(30, (nsa[1] as! TestObjCValueTy).value)
// Check that the Array is not affected.
- expectEqual(20, result[1].value)
+ expectEqual(20, (result[1] as! TestObjCValueTy).value)
}
ArrayTestSuite.test("BridgedFromObjC.Nonverbatim.ArrayIsCopied") {
@@ -393,8 +393,8 @@
ArrayTestSuite.test("BridgedFromObjC.Verbatim.NSArrayIsRetained") {
let nsa = NSArray(array: getAsNSArray([ 10, 20, 30 ]))
- var a: Array<AnyObject> = convertNSArrayToArray(nsa)
- var bridgedBack: NSArray = convertArrayToNSArray(a)
+ let a: Array<AnyObject> = convertNSArrayToArray(nsa)
+ let bridgedBack: NSArray = convertArrayToNSArray(a)
expectEqual(
unsafeBitCast(nsa, to: Int.self),
@@ -407,8 +407,8 @@
ArrayTestSuite.test("BridgedFromObjC.Nonverbatim.NSArrayIsCopied") {
let nsa = NSArray(array: getAsNSArray([ 10, 20, 30 ]))
- var a: Array<TestBridgedValueTy> = convertNSArrayToArray(nsa)
- var bridgedBack: NSArray = convertArrayToNSArray(a)
+ let a: Array<TestBridgedValueTy> = convertNSArrayToArray(nsa)
+ let bridgedBack: NSArray = convertArrayToNSArray(a)
expectNotEqual(
unsafeBitCast(nsa, to: Int.self),
@@ -542,11 +542,9 @@
expectEqual(30, (v as! TestObjCValueTy).value)
let idValue2 = unsafeBitCast(v, to: UInt.self)
- for i in 0..<3 {
- expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
- expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
- expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
- }
+ expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
+ expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
+ expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
expectAutoreleasedKeysAndValues(unopt: (0, 3))
}
@@ -602,11 +600,9 @@
expectEqual(30, (v as! TestObjCValueTy).value)
let idValue2 = unsafeBitCast(v, to: UInt.self)
- for i in 0..<3 {
- expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
- expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
- expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
- }
+ expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
+ expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
+ expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
buffer.deallocate()
_fixLifetime(a)
@@ -815,11 +811,9 @@
expectEqual(30, (v as! TestObjCValueTy).value)
let idValue2 = unsafeBitCast(v, to: UInt.self)
- for i in 0..<3 {
- expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
- expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
- expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
- }
+ expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
+ expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
+ expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
expectEqual(3, TestBridgedValueTy.bridgeOperations)
expectAutoreleasedKeysAndValues(unopt: (0, 3))
@@ -876,11 +870,9 @@
expectEqual(30, (v as! TestObjCValueTy).value)
let idValue2 = unsafeBitCast(v, to: UInt.self)
- for i in 0..<3 {
- expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
- expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
- expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
- }
+ expectEqual(idValue0, unsafeBitCast(a.object(at: 0) as AnyObject, to: UInt.self))
+ expectEqual(idValue1, unsafeBitCast(a.object(at: 1) as AnyObject, to: UInt.self))
+ expectEqual(idValue2, unsafeBitCast(a.object(at: 2) as AnyObject, to: UInt.self))
buffer.deallocate()
_fixLifetime(a)
@@ -1119,14 +1111,14 @@
TestBridgedValueTy.bridgeOperations = 0
let nsa: NSArray = getAsImmutableNSArray([ 10, 20, 30 ])
let a: Array<TestBridgedValueTy> = convertNSArrayToArray(nsa)
- let bridgedBack = convertArrayToNSArray(a)
+ let _ = convertArrayToNSArray(a)
expectEqual(3, TestBridgedValueTy.bridgeOperations)
}
do {
TestBridgedValueTy.bridgeOperations = 0
let nsa: NSArray = getAsImmutableNSArray([ 10, 20, 30 ])
let a = nsa as! Array<TestBridgedValueTy>
- let bridgedBack: NSArray = a as NSArray
+ let _: NSArray = a as NSArray
expectEqual(3, TestBridgedValueTy.bridgeOperations)
}
}
diff --git a/validation-test/stdlib/ArrayTrapsObjC.swift.gyb b/validation-test/stdlib/ArrayTrapsObjC.swift
similarity index 85%
rename from validation-test/stdlib/ArrayTrapsObjC.swift.gyb
rename to validation-test/stdlib/ArrayTrapsObjC.swift
index 72baf64..9da81f0 100644
--- a/validation-test/stdlib/ArrayTrapsObjC.swift.gyb
+++ b/validation-test/stdlib/ArrayTrapsObjC.swift
@@ -1,12 +1,6 @@
// RUN: %empty-directory(%t)
-// RUN: %gyb %s -o %t/ArrayTraps.swift
-// RUN: %line-directive %t/ArrayTraps.swift -- %target-build-swift %t/ArrayTraps.swift -o %t/a.out_Debug -Onone -swift-version 3
-// RUN: %line-directive %t/ArrayTraps.swift -- %target-build-swift %t/ArrayTraps.swift -o %t/a.out_Release -O -swift-version 3
-//
-// RUN: %target-codesign %t/a.out_Debug
-// RUN: %target-codesign %t/a.out_Release
-// RUN: %line-directive %t/ArrayTraps.swift -- %target-run %t/a.out_Debug
-// RUN: %line-directive %t/ArrayTraps.swift -- %target-run %t/a.out_Release
+// RUN: %target-build-swift %s -o %t/a.out_Debug -Onone -swift-version 4.2 && %target-codesign %t/a.out_Debug && %target-run %t/a.out_Debug
+// RUN: %target-build-swift %s -o %t/a.out_Release -O -swift-version 4.2 && %target-codesign %t/a.out_Release && %target-run %t/a.out_Release
// REQUIRES: executable_test
// REQUIRES: objc_interop
@@ -28,7 +22,7 @@
.code {
let ba: [Base] = [ Derived(), Base() ]
let da = ba as! [Derived]
- let d0 = da[0]
+ _ = da[0]
expectCrashLater()
_ = da[1]
}
@@ -40,7 +34,7 @@
.code {
let a: [AnyObject] = ["String" as NSString, 1 as NSNumber]
let sa = a as! [NSString]
- let s0 = sa[0]
+ _ = sa[0]
expectCrashLater()
_ = sa[1]
}
@@ -52,10 +46,10 @@
.code {
let ba: [Base] = [ Derived2(), Derived(), Base() ]
let d2a = ba as! [Derived2]
- let d2a0 = d2a[0]
+ _ = d2a[0]
let d1a = d2a as [Derived]
- let d1a0 = d1a[0]
- let d1a1 = d1a[1]
+ _ = d1a[0]
+ _ = d1a[1]
expectCrashLater()
_ = d1a[2]
}
@@ -71,7 +65,7 @@
.code {
let ba: [ObjCProto] = [ ObjCDerived(), ObjCBase() ]
let da = ba as! [ObjCDerived]
- let d0 = da[0]
+ _ = da[0]
expectCrashLater()
_ = da[1]
}
@@ -86,7 +80,7 @@
let ba: [Base] = [ Derived(), Base() ]
let da = ba as! [Derived]
expectCrashLater()
- let x = da[2]
+ _ = da[2]
}
var ArraySemanticOptzns = TestSuite("ArraySemanticOptzns" + testSuiteSuffix)
@@ -138,7 +132,7 @@
{ _isFastAssertConfiguration() },
reason: "this trap is not guaranteed to happen in -Ounchecked"))
.crashOutputMatches(_isDebugAssertConfiguration() ?
- "Fatal error: inout rules were violated: the array was overwritten" : "")
+ "Fatal access conflict detected." : "")
.code {
let v = ViolateInoutSafetySwitchToObjcBuffer()
expectCrashLater()
@@ -181,7 +175,7 @@
{ _isFastAssertConfiguration() },
reason: "this trap is not guaranteed to happen in -Ounchecked"))
.crashOutputMatches(_isDebugAssertConfiguration() ?
- "Fatal error: inout rules were violated: the array was overwritten" : "")
+ "Fatal access conflict detected." : "")
.code {
let v = ViolateInoutSafetyNeedElementTypeCheck()
expectCrashLater()
diff --git a/validation-test/stdlib/CollectionCompatibility.swift b/validation-test/stdlib/CollectionCompatibility.swift
index ec665f2..561b497 100644
--- a/validation-test/stdlib/CollectionCompatibility.swift
+++ b/validation-test/stdlib/CollectionCompatibility.swift
@@ -1,6 +1,6 @@
// RUN: rm -rf %t ; mkdir -p %t
-// RUN: %target-build-swift %s -o %t/a.out3 -swift-version 3 && %target-codesign %t/a.out3 && %target-run %t/a.out3
// RUN: %target-build-swift %s -o %t/a.out4 -swift-version 4 && %target-codesign %t/a.out4 && %target-run %t/a.out4
+// RUN: %target-build-swift %s -o %t/a.out42 -swift-version 4.2 && %target-codesign %t/a.out42 && %target-run %t/a.out42
// REQUIRES: executable_test
diff --git a/validation-test/stdlib/DictionaryBridging.swift b/validation-test/stdlib/DictionaryBridging.swift
index d7484d5..4a2d203 100644
--- a/validation-test/stdlib/DictionaryBridging.swift
+++ b/validation-test/stdlib/DictionaryBridging.swift
@@ -2,7 +2,7 @@
//
// RUN: %target-clang -fobjc-arc %S/Inputs/SlurpFastEnumeration/SlurpFastEnumeration.m -c -o %t/SlurpFastEnumeration.o
// RUN: echo '#sourceLocation(file: "%s", line: 1)' > "%t/main.swift" && cat "%s" >> "%t/main.swift" && chmod -w "%t/main.swift"
-// RUN: %target-build-swift -Xfrontend -disable-access-control -I %S/Inputs/SlurpFastEnumeration/ %t/main.swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift -Xlinker %t/SlurpFastEnumeration.o -o %t.out -O -swift-version 3
+// RUN: %target-build-swift -Xfrontend -disable-access-control -I %S/Inputs/SlurpFastEnumeration/ %t/main.swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift -Xlinker %t/SlurpFastEnumeration.o -o %t.out -O -swift-version 4.2
// RUN: %target-run %t.out
// REQUIRES: executable_test
// REQUIRES: stress_test
diff --git a/validation-test/stdlib/FixedPointDiagnostics.swift.gyb b/validation-test/stdlib/FixedPointDiagnostics.swift.gyb
index 46807a9..48d776b 100644
--- a/validation-test/stdlib/FixedPointDiagnostics.swift.gyb
+++ b/validation-test/stdlib/FixedPointDiagnostics.swift.gyb
@@ -1,6 +1,6 @@
// RUN: %empty-directory(%t)
// RUN: %gyb %s -o %t/main.swift
-// RUN: %line-directive %t/main.swift -- %target-swift-frontend -typecheck -verify -swift-version 3 %t/main.swift
+// RUN: %line-directive %t/main.swift -- %target-swift-frontend -typecheck -verify -swift-version 4.2 %t/main.swift
func testUnaryMinusInUnsigned() {
var a: UInt8 = -(1) // expected-error {{cannot convert value of type 'Int' to specified type 'UInt8'}} expected-note * {{}} expected-warning * {{}}
@@ -29,53 +29,53 @@
func test_truncatingBitPatternAPIIsStableAcrossPlatforms() {
// Audit and update this test when adding new integer types.
- expectSameType(Int64.self, IntMax.self)
- expectSameType(UInt64.self, UIntMax.self)
+ expectSameType(Int64.self, IntMax.self) // expected-error {{'IntMax' has been renamed to 'Int64'}}
+ expectSameType(UInt64.self, UIntMax.self) // expected-error {{'UIntMax' has been renamed to 'UInt64'}}
- _ = UInt8(truncatingBitPattern: UInt(0))
- _ = UInt16(truncatingBitPattern: UInt(0))
- _ = UInt32(truncatingBitPattern: UInt(0))
+ _ = UInt8(truncatingBitPattern: UInt(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = UInt16(truncatingBitPattern: UInt(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = UInt32(truncatingBitPattern: UInt(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
UInt64(truncatingBitPattern: UInt(0)) // expected-error {{incorrect argument label in call (have 'truncatingBitPattern:', expected '_truncatingBits:')}}
- UInt(truncatingBitPattern: UInt(0)) // expected-error {{}} expected-note * {{}}
+ UInt(truncatingBitPattern: UInt(0)) // expected-error {{cannot invoke initializer for type 'UInt' with an argument list of type '(truncatingBitPattern: UInt)'}} expected-note {{overloads for 'UInt' exist with these partially matching parameter lists: (truncatingBitPattern: UInt64), (truncatingBitPattern: Int64)}}
- _ = Int8(truncatingBitPattern: UInt(0))
- _ = Int16(truncatingBitPattern: UInt(0))
- _ = Int32(truncatingBitPattern: UInt(0))
+ _ = Int8(truncatingBitPattern: UInt(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = Int16(truncatingBitPattern: UInt(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = Int32(truncatingBitPattern: UInt(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
Int64(truncatingBitPattern: UInt(0)) // expected-error {{incorrect argument label in call (have 'truncatingBitPattern:', expected '_truncatingBits:')}}
- Int(truncatingBitPattern: UInt(0)) // expected-error {{}} expected-note * {{}}
+ Int(truncatingBitPattern: UInt(0)) // expected-error {{}} expected-note * {{}}
- _ = UInt8(truncatingBitPattern: Int(0))
- _ = UInt16(truncatingBitPattern: Int(0))
- _ = UInt32(truncatingBitPattern: Int(0))
+ _ = UInt8(truncatingBitPattern: Int(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = UInt16(truncatingBitPattern: Int(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = UInt32(truncatingBitPattern: Int(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
UInt64(truncatingBitPattern: Int(0)) // expected-error {{argument labels '(truncatingBitPattern:)' do not match any available overloads}}
// expected-note@-1 {{overloads for 'UInt64' exist with these partially matching parameter lists}}
UInt(truncatingBitPattern: Int(0)) // expected-error {{}} expected-note * {{}}
- _ = Int8(truncatingBitPattern: Int(0))
- _ = Int16(truncatingBitPattern: Int(0))
- _ = Int32(truncatingBitPattern: Int(0))
+ _ = Int8(truncatingBitPattern: Int(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = Int16(truncatingBitPattern: Int(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
+ _ = Int32(truncatingBitPattern: Int(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
Int64(truncatingBitPattern: Int(0)) // expected-error {{}} expected-note * {{}}
Int(truncatingBitPattern: Int(0)) // expected-error {{}} expected-note * {{}}
UInt(truncatingBitPattern: UInt8(0)) // expected-error {{}} expected-note * {{}}
UInt(truncatingBitPattern: UInt16(0)) // expected-error {{}} expected-note * {{}}
UInt(truncatingBitPattern: UInt32(0)) // expected-error {{}} expected-note * {{}}
- _ = UInt(truncatingBitPattern: UInt64(0))
+ _ = UInt(truncatingBitPattern: UInt64(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
Int(truncatingBitPattern: UInt8(0)) // expected-error {{}} expected-note * {{}}
Int(truncatingBitPattern: UInt16(0)) // expected-error {{}} expected-note * {{}}
Int(truncatingBitPattern: UInt32(0)) // expected-error {{}} expected-note * {{}}
- _ = Int(truncatingBitPattern: UInt64(0))
+ _ = Int(truncatingBitPattern: UInt64(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
UInt(truncatingBitPattern: Int8(0)) // expected-error {{}} expected-note * {{}}
UInt(truncatingBitPattern: Int16(0)) // expected-error {{}} expected-note * {{}}
UInt(truncatingBitPattern: Int32(0)) // expected-error {{}} expected-note * {{}}
- _ = UInt(truncatingBitPattern: Int64(0))
+ _ = UInt(truncatingBitPattern: Int64(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
Int(truncatingBitPattern: Int8(0)) // expected-error {{}} expected-note * {{}}
Int(truncatingBitPattern: Int16(0)) // expected-error {{}} expected-note * {{}}
Int(truncatingBitPattern: Int32(0)) // expected-error {{}} expected-note * {{}}
- _ = Int(truncatingBitPattern: Int64(0))
+ _ = Int(truncatingBitPattern: Int64(0)) // expected-error {{'init(truncatingBitPattern:)' has been renamed to 'init(truncatingIfNeeded:)'}}
}
func testMixedSignArithmetic() {
@@ -87,15 +87,15 @@
typealias Stride = ${T}.Stride
_ = ${T}(1) + 0 // OK
_ = 0 + ${T}(1) // OK
- _ = ${T}(1) + Stride(0) // expected-warning {{}} // mixed-type arithmetics
- _ = Stride(1) + ${T}(0) // expected-warning {{}} // mixed-type arithmetics
- _ = ${T}(1) - Stride(0) // expected-warning {{}} // mixed-type arithmetics
+ _ = ${T}(1) + Stride(0) // expected-error {{'+' is unavailable: Please use explicit type conversions or Strideable methods for mixed-type arithmetics.}}
+ _ = Stride(1) + ${T}(0) // expected-error {{'+' is unavailable: Please use explicit type conversions or Strideable methods for mixed-type arithmetics.}}
+ _ = ${T}(1) - Stride(0) // expected-error {{'-' is unavailable: Please use explicit type conversions or Strideable methods for mixed-type arithmetics.}}
var x: ${T} = 0
x += 1 // OK
- x += Stride(1) // expected-warning {{}} // mixed-type arithmetics
- x -= Stride(1) // expected-warning {{}} // mixed-type arithmetics
+ x += Stride(1) // expected-error {{'+=' is unavailable: Please use explicit type conversions or Strideable methods for mixed-type arithmetics.}}
+ x -= Stride(1) // expected-error {{'-=' is unavailable: Please use explicit type conversions or Strideable methods for mixed-type arithmetics.}}
- _ = (x - x) as Stride // expected-warning {{}} // ambiguous use of operator '-'
+ _ = (x - x) as Stride // expected-error {{ambiguous reference to member '-'}}
//===------------------------------------------------------------------===//
// The following errors are different because they're not being
diff --git a/validation-test/stdlib/Set.swift b/validation-test/stdlib/Set.swift
index bc71ae7..23a187b 100644
--- a/validation-test/stdlib/Set.swift
+++ b/validation-test/stdlib/Set.swift
@@ -3,9 +3,9 @@
// RUN: %gyb %s -o %t/main.swift
// RUN: if [ %target-runtime == "objc" ]; then \
// RUN: %target-clang -fobjc-arc %S/Inputs/SlurpFastEnumeration/SlurpFastEnumeration.m -c -o %t/SlurpFastEnumeration.o; \
-// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift %t/main.swift -I %S/Inputs/SlurpFastEnumeration/ -Xlinker %t/SlurpFastEnumeration.o -o %t/Set -Xfrontend -disable-access-control -swift-version 3; \
+// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift %t/main.swift -I %S/Inputs/SlurpFastEnumeration/ -Xlinker %t/SlurpFastEnumeration.o -o %t/Set -Xfrontend -disable-access-control -swift-version 4.2; \
// RUN: else \
-// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %t/main.swift -o %t/Set -Xfrontend -disable-access-control -swift-version 3; \
+// RUN: %line-directive %t/main.swift -- %target-build-swift %S/Inputs/DictionaryKeyValueTypes.swift %t/main.swift -o %t/Set -Xfrontend -disable-access-control -swift-version 4.2; \
// RUN: fi
//
// RUN: %target-codesign %t/Set && %line-directive %t/main.swift -- %target-run %t/Set
@@ -137,7 +137,7 @@
func getBridgedEmptyNSSet() -> NSSet {
let s = Set<TestObjCKeyTy>()
- let bridged = unsafeBitCast(convertSetToNSSet(s), to: NSSet.self)
+ let bridged = convertSetToNSSet(s)
expectTrue(isNativeNSSet(bridged))
return bridged
@@ -241,8 +241,7 @@
s.insert(TestObjCKeyTy(2020))
s.insert(TestObjCKeyTy(3030))
- let bridged =
- unsafeBitCast(convertSetToNSSet(s), to: NSSet.self)
+ let bridged = convertSetToNSSet(s)
expectTrue(isNativeNSSet(bridged))
@@ -327,7 +326,7 @@
SetTestSuite.test("COW.Smoke") {
var s1 = Set<TestKeyTy>(minimumCapacity: 10)
for i in [1010, 2020, 3030]{ s1.insert(TestKeyTy(i)) }
- var identity1 = s1._rawIdentifier()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
_fixLifetime(s2)
@@ -346,10 +345,10 @@
SetTestSuite.test("COW.Fast.IndexesDontAffectUniquenessCheck") {
var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
- var startIndex = s.startIndex
- var endIndex = s.endIndex
+ let startIndex = s.startIndex
+ let endIndex = s.endIndex
expectNotEqual(startIndex, endIndex)
expectTrue(startIndex < endIndex)
expectTrue(startIndex <= endIndex)
@@ -368,10 +367,10 @@
SetTestSuite.test("COW.Slow.IndexesDontAffectUniquenessCheck") {
var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
- var startIndex = s.startIndex
- var endIndex = s.endIndex
+ let startIndex = s.startIndex
+ let endIndex = s.endIndex
expectNotEqual(startIndex, endIndex)
expectTrue(startIndex < endIndex)
expectTrue(startIndex <= endIndex)
@@ -388,10 +387,10 @@
}
SetTestSuite.test("COW.Fast.SubscriptWithIndexDoesNotReallocate") {
- var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWFastSet()
+ let identity1 = s._rawIdentifier()
- var startIndex = s.startIndex
+ let startIndex = s.startIndex
let empty = startIndex == s.endIndex
expectNotEqual(empty, (s.startIndex < s.endIndex))
expectTrue(s.startIndex <= s.endIndex)
@@ -404,10 +403,10 @@
}
SetTestSuite.test("COW.Slow.SubscriptWithIndexDoesNotReallocate") {
- var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWSlowSet()
+ let identity1 = s._rawIdentifier()
- var startIndex = s.startIndex
+ let startIndex = s.startIndex
let empty = startIndex == s.endIndex
expectNotEqual(empty, (s.startIndex < s.endIndex))
expectTrue(s.startIndex <= s.endIndex)
@@ -420,14 +419,14 @@
}
SetTestSuite.test("COW.Fast.ContainsDoesNotReallocate") {
- var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWFastSet()
+ let identity1 = s._rawIdentifier()
expectTrue(s.contains(1010))
expectEqual(identity1, s._rawIdentifier())
do {
- var s2: Set<MinimalHashableValue> = []
+ let s2: Set<MinimalHashableValue> = []
MinimalHashableValue.timesEqualEqualWasCalled = 0
MinimalHashableValue.timesHashIntoWasCalled = 0
expectFalse(s2.contains(MinimalHashableValue(42)))
@@ -442,7 +441,7 @@
SetTestSuite.test("COW.Slow.ContainsDoesNotReallocate")
.code {
var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(s.contains(TestKeyTy(1010)))
expectEqual(identity1, s._rawIdentifier())
@@ -473,7 +472,7 @@
expectTrue(s.contains(TestKeyTy(4040)))
do {
- var s2: Set<MinimalHashableClass> = []
+ let s2: Set<MinimalHashableClass> = []
MinimalHashableClass.timesEqualEqualWasCalled = 0
MinimalHashableClass.timesHashIntoWasCalled = 0
expectFalse(s2.contains(MinimalHashableClass(42)))
@@ -523,8 +522,8 @@
}
do {
- var s1 = getCOWSlowSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWSlowSet()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
expectEqual(identity1, s1._rawIdentifier())
@@ -552,8 +551,8 @@
}
do {
- var s1 = getCOWSlowSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWSlowSet()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
expectEqual(identity1, s1._rawIdentifier())
@@ -581,15 +580,15 @@
}
SetTestSuite.test("COW.Fast.IndexForMemberDoesNotReallocate") {
- var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWFastSet()
+ let identity1 = s._rawIdentifier()
// Find an existing key.
do {
- var foundIndex1 = s.firstIndex(of: 1010)!
+ let foundIndex1 = s.firstIndex(of: 1010)!
expectEqual(identity1, s._rawIdentifier())
- var foundIndex2 = s.firstIndex(of: 1010)!
+ let foundIndex2 = s.firstIndex(of: 1010)!
expectEqual(foundIndex1, foundIndex2)
expectEqual(1010, s[foundIndex1])
@@ -598,13 +597,13 @@
// Try to find a key that is not present.
do {
- var foundIndex1 = s.firstIndex(of: 1111)
+ let foundIndex1 = s.firstIndex(of: 1111)
expectNil(foundIndex1)
expectEqual(identity1, s._rawIdentifier())
}
do {
- var s2: Set<MinimalHashableValue> = []
+ let s2: Set<MinimalHashableValue> = []
MinimalHashableValue.timesEqualEqualWasCalled = 0
MinimalHashableValue.timesHashIntoWasCalled = 0
expectNil(s2.firstIndex(of: MinimalHashableValue(42)))
@@ -617,15 +616,15 @@
}
SetTestSuite.test("COW.Slow.IndexForMemberDoesNotReallocate") {
- var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWSlowSet()
+ let identity1 = s._rawIdentifier()
// Find an existing key.
do {
- var foundIndex1 = s.firstIndex(of: TestKeyTy(1010))!
+ let foundIndex1 = s.firstIndex(of: TestKeyTy(1010))!
expectEqual(identity1, s._rawIdentifier())
- var foundIndex2 = s.firstIndex(of: TestKeyTy(1010))!
+ let foundIndex2 = s.firstIndex(of: TestKeyTy(1010))!
expectEqual(foundIndex1, foundIndex2)
expectEqual(TestKeyTy(1010), s[foundIndex1])
@@ -634,13 +633,13 @@
// Try to find a key that is not present.
do {
- var foundIndex1 = s.firstIndex(of: TestKeyTy(1111))
+ let foundIndex1 = s.firstIndex(of: TestKeyTy(1111))
expectNil(foundIndex1)
expectEqual(identity1, s._rawIdentifier())
}
do {
- var s2: Set<MinimalHashableClass> = []
+ let s2: Set<MinimalHashableClass> = []
MinimalHashableClass.timesEqualEqualWasCalled = 0
MinimalHashableClass.timesHashIntoWasCalled = 0
expectNil(s2.firstIndex(of: MinimalHashableClass(42)))
@@ -656,7 +655,7 @@
.code {
do {
var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
let foundIndex1 = s.firstIndex(of: 1010)!
expectEqual(identity1, s._rawIdentifier())
@@ -671,14 +670,14 @@
}
do {
- var s1 = getCOWFastSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWFastSet()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
expectEqual(identity1, s1._rawIdentifier())
expectEqual(identity1, s2._rawIdentifier())
- var foundIndex1 = s2.firstIndex(of: 1010)!
+ let foundIndex1 = s2.firstIndex(of: 1010)!
expectEqual(1010, s2[foundIndex1])
expectEqual(identity1, s1._rawIdentifier())
expectEqual(identity1, s2._rawIdentifier())
@@ -696,7 +695,7 @@
.code {
do {
var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
let foundIndex1 = s.firstIndex(of: TestKeyTy(1010))!
expectEqual(identity1, s._rawIdentifier())
@@ -711,14 +710,14 @@
}
do {
- var s1 = getCOWSlowSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWSlowSet()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
expectEqual(identity1, s1._rawIdentifier())
expectEqual(identity1, s2._rawIdentifier())
- var foundIndex1 = s2.firstIndex(of: TestKeyTy(1010))!
+ let foundIndex1 = s2.firstIndex(of: TestKeyTy(1010))!
expectEqual(TestKeyTy(1010), s2[foundIndex1])
expectEqual(identity1, s1._rawIdentifier())
expectEqual(identity1, s2._rawIdentifier())
@@ -736,7 +735,7 @@
.code {
do {
var s1 = getCOWFastSet()
- var identity1 = s1._rawIdentifier()
+ let identity1 = s1._rawIdentifier()
var deleted = s1.remove(0)
expectNil(deleted)
@@ -751,8 +750,8 @@
}
do {
- var s1 = getCOWFastSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWFastSet()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
var deleted = s2.remove(0)
@@ -775,7 +774,7 @@
.code {
do {
var s1 = getCOWSlowSet()
- var identity1 = s1._rawIdentifier()
+ let identity1 = s1._rawIdentifier()
var deleted = s1.remove(TestKeyTy(0))
expectNil(deleted)
@@ -790,8 +789,8 @@
}
do {
- var s1 = getCOWSlowSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWSlowSet()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
var deleted = s2.remove(TestKeyTy(0))
@@ -837,7 +836,7 @@
s.removeAll()
// We cannot expectTrue that identity changed, since the new buffer of
// smaller size can be allocated at the same address as the old one.
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(s.capacity < originalCapacity)
expectEqual(0, s.count)
expectFalse(s.contains(1010))
@@ -850,7 +849,7 @@
do {
var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
let originalCapacity = s.capacity
expectEqual(3, s.count)
expectTrue(s.contains(1010))
@@ -869,14 +868,14 @@
}
do {
- var s1 = getCOWFastSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWFastSet()
+ let identity1 = s1._rawIdentifier()
expectEqual(3, s1.count)
expectTrue(s1.contains(1010))
var s2 = s1
s2.removeAll()
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity1, identity2)
expectEqual(3, s1.count)
@@ -890,15 +889,15 @@
}
do {
- var s1 = getCOWFastSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWFastSet()
+ let identity1 = s1._rawIdentifier()
let originalCapacity = s1.capacity
expectEqual(3, s1.count)
expectTrue(s1.contains(1010))
var s2 = s1
s2.removeAll(keepingCapacity: true)
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity1, identity2)
expectEqual(3, s1.count)
@@ -923,7 +922,7 @@
s.removeAll()
// We cannot expectTrue that identity changed, since the new buffer of
// smaller size can be allocated at the same address as the old one.
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(s.capacity < originalCapacity)
expectEqual(0, s.count)
expectFalse(s.contains(TestKeyTy(1010)))
@@ -936,7 +935,7 @@
do {
var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
let originalCapacity = s.capacity
expectEqual(3, s.count)
expectTrue(s.contains(TestKeyTy(1010)))
@@ -955,14 +954,14 @@
}
do {
- var s1 = getCOWSlowSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWSlowSet()
+ let identity1 = s1._rawIdentifier()
expectEqual(3, s1.count)
expectTrue(s1.contains(TestKeyTy(1010)))
var s2 = s1
s2.removeAll()
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity1, identity2)
expectEqual(3, s1.count)
@@ -976,15 +975,15 @@
}
do {
- var s1 = getCOWSlowSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWSlowSet()
+ let identity1 = s1._rawIdentifier()
let originalCapacity = s1.capacity
expectEqual(3, s1.count)
expectTrue(s1.contains(TestKeyTy(1010)))
var s2 = s1
s2.removeAll(keepingCapacity: true)
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity1, identity2)
expectEqual(3, s1.count)
@@ -1000,40 +999,40 @@
}
SetTestSuite.test("COW.Fast.FirstDoesNotReallocate") {
- var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWFastSet()
+ let identity1 = s._rawIdentifier()
expectNotNil(s.first)
expectEqual(identity1, s._rawIdentifier())
}
SetTestSuite.test("COW.Fast.CountDoesNotReallocate") {
- var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWFastSet()
+ let identity1 = s._rawIdentifier()
expectEqual(3, s.count)
expectEqual(identity1, s._rawIdentifier())
}
SetTestSuite.test("COW.Slow.FirstDoesNotReallocate") {
- var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWSlowSet()
+ let identity1 = s._rawIdentifier()
expectNotNil(s.first)
expectEqual(identity1, s._rawIdentifier())
}
SetTestSuite.test("COW.Slow.CountDoesNotReallocate") {
- var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWSlowSet()
+ let identity1 = s._rawIdentifier()
expectEqual(3, s.count)
expectEqual(identity1, s._rawIdentifier())
}
SetTestSuite.test("COW.Fast.GenerateDoesNotReallocate") {
- var s = getCOWFastSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWFastSet()
+ let identity1 = s._rawIdentifier()
var iter = s.makeIterator()
var items: [Int] = []
@@ -1045,8 +1044,8 @@
}
SetTestSuite.test("COW.Slow.GenerateDoesNotReallocate") {
- var s = getCOWSlowSet()
- var identity1 = s._rawIdentifier()
+ let s = getCOWSlowSet()
+ let identity1 = s._rawIdentifier()
var iter = s.makeIterator()
var items: [Int] = []
@@ -1058,11 +1057,11 @@
}
SetTestSuite.test("COW.Fast.EqualityTestDoesNotReallocate") {
- var s1 = getCOWFastSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWFastSet()
+ let identity1 = s1._rawIdentifier()
- var s2 = getCOWFastSet()
- var identity2 = s2._rawIdentifier()
+ let s2 = getCOWFastSet()
+ let identity2 = s2._rawIdentifier()
expectEqual(s1, s2)
expectEqual(identity1, s1._rawIdentifier())
@@ -1070,11 +1069,11 @@
}
SetTestSuite.test("COW.Slow.EqualityTestDoesNotReallocate") {
- var s1 = getCOWFastSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getCOWFastSet()
+ let identity1 = s1._rawIdentifier()
- var s2 = getCOWFastSet()
- var identity2 = s2._rawIdentifier()
+ let s2 = getCOWFastSet()
+ let identity2 = s2._rawIdentifier()
expectEqual(s1, s2)
expectEqual(identity1, s1._rawIdentifier())
@@ -1086,28 +1085,28 @@
//===---
SetTestSuite.test("deleteChainCollision") {
- var k1 = TestKeyTy(value: 1010, hashValue: 0)
- var k2 = TestKeyTy(value: 2020, hashValue: 0)
- var k3 = TestKeyTy(value: 3030, hashValue: 0)
+ let k1 = TestKeyTy(value: 1010, hashValue: 0)
+ let k2 = TestKeyTy(value: 2020, hashValue: 0)
+ let k3 = TestKeyTy(value: 3030, hashValue: 0)
helperDeleteThree(k1, k2, k3)
}
SetTestSuite.test("deleteChainNoCollision") {
- var k1 = TestKeyTy(value: 1010, hashValue: 0)
- var k2 = TestKeyTy(value: 2020, hashValue: 1)
- var k3 = TestKeyTy(value: 3030, hashValue: 2)
+ let k1 = TestKeyTy(value: 1010, hashValue: 0)
+ let k2 = TestKeyTy(value: 2020, hashValue: 1)
+ let k3 = TestKeyTy(value: 3030, hashValue: 2)
helperDeleteThree(k1, k2, k3)
}
SetTestSuite.test("deleteChainCollision2") {
- var k1_0 = TestKeyTy(value: 1010, hashValue: 0)
- var k2_0 = TestKeyTy(value: 2020, hashValue: 0)
- var k3_2 = TestKeyTy(value: 3030, hashValue: 2)
- var k4_0 = TestKeyTy(value: 4040, hashValue: 0)
- var k5_2 = TestKeyTy(value: 5050, hashValue: 2)
- var k6_0 = TestKeyTy(value: 6060, hashValue: 0)
+ let k1_0 = TestKeyTy(value: 1010, hashValue: 0)
+ let k2_0 = TestKeyTy(value: 2020, hashValue: 0)
+ let k3_2 = TestKeyTy(value: 3030, hashValue: 2)
+ let k4_0 = TestKeyTy(value: 4040, hashValue: 0)
+ let k5_2 = TestKeyTy(value: 5050, hashValue: 2)
+ let k6_0 = TestKeyTy(value: 6060, hashValue: 0)
var s = Set<TestKeyTy>(minimumCapacity: 10)
@@ -1224,7 +1223,7 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.SetIsCopied") {
- var (s, nss) = getBridgedVerbatimSetAndNSMutableSet()
+ let (s, nss) = getBridgedVerbatimSetAndNSMutableSet()
expectTrue(isCocoaSet(s))
expectTrue(s.contains(TestObjCKeyTy(1010)))
@@ -1237,7 +1236,7 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.SetIsCopied") {
- var (s, nss) = getBridgedNonverbatimSetAndNSMutableSet()
+ let (s, nss) = getBridgedNonverbatimSetAndNSMutableSet()
expectTrue(isNativeSet(s))
expectTrue(s.contains(TestBridgedKeyTy(1010)))
@@ -1251,11 +1250,11 @@
SetTestSuite.test("BridgedFromObjC.Verbatim.NSSetIsRetained") {
- var nss: NSSet = NSSet(set: getAsNSSet([ 1010, 1020, 1030 ]))
+ let nss: NSSet = NSSet(set: getAsNSSet([ 1010, 1020, 1030 ]))
- var s: Set<NSObject> = convertNSSetToSet(nss)
+ let s: Set<NSObject> = convertNSSetToSet(nss)
- var bridgedBack: NSSet = convertSetToNSSet(s)
+ let bridgedBack: NSSet = convertSetToNSSet(s)
expectEqual(
unsafeBitCast(nss, to: Int.self),
@@ -1267,11 +1266,11 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.NSSetIsCopied") {
- var nss: NSSet = NSSet(set: getAsNSSet([ 1010, 1020, 1030 ]))
+ let nss: NSSet = NSSet(set: getAsNSSet([ 1010, 1020, 1030 ]))
- var s: Set<TestBridgedKeyTy> = convertNSSetToSet(nss)
+ let s: Set<TestBridgedKeyTy> = convertNSSetToSet(nss)
- var bridgedBack: NSSet = convertSetToNSSet(s)
+ let bridgedBack: NSSet = convertSetToNSSet(s)
expectNotEqual(
unsafeBitCast(nss, to: Int.self),
@@ -1284,19 +1283,19 @@
SetTestSuite.test("BridgedFromObjC.Verbatim.ImmutableSetIsRetained") {
- var nss: NSSet = CustomImmutableNSSet(_privateInit: ())
+ let nss: NSSet = CustomImmutableNSSet(_privateInit: ())
CustomImmutableNSSet.timesCopyWithZoneWasCalled = 0
CustomImmutableNSSet.timesMemberWasCalled = 0
CustomImmutableNSSet.timesObjectEnumeratorWasCalled = 0
CustomImmutableNSSet.timesCountWasCalled = 0
- var s: Set<NSObject> = convertNSSetToSet(nss)
+ let s: Set<NSObject> = convertNSSetToSet(nss)
expectEqual(1, CustomImmutableNSSet.timesCopyWithZoneWasCalled)
expectEqual(0, CustomImmutableNSSet.timesMemberWasCalled)
expectEqual(0, CustomImmutableNSSet.timesObjectEnumeratorWasCalled)
expectEqual(0, CustomImmutableNSSet.timesCountWasCalled)
- var bridgedBack: NSSet = convertSetToNSSet(s)
+ let bridgedBack: NSSet = convertSetToNSSet(s)
expectEqual(
unsafeBitCast(nss, to: Int.self),
unsafeBitCast(bridgedBack, to: Int.self))
@@ -1307,19 +1306,19 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.ImmutableSetIsCopied") {
- var nss: NSSet = CustomImmutableNSSet(_privateInit: ())
+ let nss: NSSet = CustomImmutableNSSet(_privateInit: ())
CustomImmutableNSSet.timesCopyWithZoneWasCalled = 0
CustomImmutableNSSet.timesMemberWasCalled = 0
CustomImmutableNSSet.timesObjectEnumeratorWasCalled = 0
CustomImmutableNSSet.timesCountWasCalled = 0
- var s: Set<TestBridgedKeyTy> = convertNSSetToSet(nss)
+ let s: Set<TestBridgedKeyTy> = convertNSSetToSet(nss)
expectEqual(0, CustomImmutableNSSet.timesCopyWithZoneWasCalled)
expectEqual(0, CustomImmutableNSSet.timesMemberWasCalled)
expectEqual(1, CustomImmutableNSSet.timesObjectEnumeratorWasCalled)
expectNotEqual(0, CustomImmutableNSSet.timesCountWasCalled)
- var bridgedBack: NSSet = convertSetToNSSet(s)
+ let bridgedBack: NSSet = convertSetToNSSet(s)
expectNotEqual(
unsafeBitCast(nss, to: Int.self),
unsafeBitCast(bridgedBack, to: Int.self))
@@ -1331,8 +1330,8 @@
SetTestSuite.test("BridgedFromObjC.Verbatim.IndexForMember") {
- var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedVerbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
// Find an existing key.
@@ -1351,8 +1350,8 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.IndexForMember") {
- var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedNonverbatimSet()
+ let identity1 = s._rawIdentifier()
do {
var member = s[s.firstIndex(of: TestBridgedKeyTy(1010))!]
@@ -1372,13 +1371,13 @@
SetTestSuite.test("BridgedFromObjC.Verbatim.Insert") {
do {
var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
expectFalse(s.contains(TestObjCKeyTy(2040)))
s.insert(TestObjCKeyTy(2040))
- var identity2 = s._rawIdentifier()
+ let identity2 = s._rawIdentifier()
expectNotEqual(identity1, identity2)
expectTrue(isNativeSet(s))
expectEqual(4, s.count)
@@ -1393,13 +1392,13 @@
SetTestSuite.test("BridgedFromObjC.Nonverbatim.Insert") {
do {
var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ //let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
expectFalse(s.contains(TestBridgedKeyTy(2040)))
s.insert(TestObjCKeyTy(2040) as TestBridgedKeyTy)
- var identity2 = s._rawIdentifier()
+ //let identity2 = s._rawIdentifier()
// Storage identity may or may not change depending on allocation behavior.
// (s is eagerly bridged to a regular uniquely referenced native Set.)
//expectNotEqual(identity1, identity2)
@@ -1415,12 +1414,12 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.SubscriptWithIndex") {
- var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedVerbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
- var startIndex = s.startIndex
- var endIndex = s.endIndex
+ let startIndex = s.startIndex
+ let endIndex = s.endIndex
expectNotEqual(startIndex, endIndex)
expectTrue(startIndex < endIndex)
expectTrue(startIndex <= endIndex)
@@ -1430,7 +1429,7 @@
var members = [Int]()
for i in s.indices {
- var foundMember: AnyObject = s[i]
+ let foundMember: AnyObject = s[i]
let member = foundMember as! TestObjCKeyTy
members.append(member.value)
}
@@ -1443,12 +1442,12 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.SubscriptWithIndex") {
- var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedNonverbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
- var startIndex = s.startIndex
- var endIndex = s.endIndex
+ let startIndex = s.startIndex
+ let endIndex = s.endIndex
expectNotEqual(startIndex, endIndex)
expectTrue(startIndex < endIndex)
expectTrue(startIndex <= endIndex)
@@ -1458,7 +1457,7 @@
var members = [Int]()
for i in s.indices {
- var foundMember: AnyObject = s[i] as NSObject
+ let foundMember: AnyObject = s[i] as NSObject
let member = foundMember as! TestObjCKeyTy
members.append(member.value)
}
@@ -1471,12 +1470,12 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.SubscriptWithIndex_Empty") {
- var s = getBridgedVerbatimSet([])
- var identity1 = s._rawIdentifier()
+ let s = getBridgedVerbatimSet([])
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
- var startIndex = s.startIndex
- var endIndex = s.endIndex
+ let startIndex = s.startIndex
+ let endIndex = s.endIndex
expectEqual(startIndex, endIndex)
expectFalse(startIndex < endIndex)
expectTrue(startIndex <= endIndex)
@@ -1490,12 +1489,12 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.SubscriptWithIndex_Empty") {
- var s = getBridgedNonverbatimSet([])
- var identity1 = s._rawIdentifier()
+ let s = getBridgedNonverbatimSet([])
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
- var startIndex = s.startIndex
- var endIndex = s.endIndex
+ let startIndex = s.startIndex
+ let endIndex = s.endIndex
expectEqual(startIndex, endIndex)
expectFalse(startIndex < endIndex)
expectTrue(startIndex <= endIndex)
@@ -1510,7 +1509,7 @@
SetTestSuite.test("BridgedFromObjC.Verbatim.Contains") {
var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
expectTrue(s.contains(TestObjCKeyTy(1010)))
@@ -1521,7 +1520,7 @@
// Inserting an item should now create storage unique from the bridged set.
s.insert(TestObjCKeyTy(4040))
- var identity2 = s._rawIdentifier()
+ let identity2 = s._rawIdentifier()
expectNotEqual(identity1, identity2)
expectTrue(isNativeSet(s))
expectEqual(4, s.count)
@@ -1548,7 +1547,7 @@
SetTestSuite.test("BridgedFromObjC.Nonverbatim.Contains") {
var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
expectTrue(s.contains(TestBridgedKeyTy(1010)))
@@ -1558,7 +1557,7 @@
expectEqual(identity1, s._rawIdentifier())
s.insert(TestBridgedKeyTy(4040))
- var identity2 = s._rawIdentifier()
+ let identity2 = s._rawIdentifier()
// Storage identity may or may not change depending on allocation behavior.
// (s is eagerly bridged to a regular uniquely referenced native Set.)
@@ -1589,7 +1588,7 @@
SetTestSuite.test("BridgedFromObjC.Nonverbatim.SubscriptWithMember") {
var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
expectTrue(s.contains(TestBridgedKeyTy(1010)))
@@ -1601,7 +1600,7 @@
// Insert a new member.
// This should trigger a copy.
s.insert(TestBridgedKeyTy(4040))
- var identity2 = s._rawIdentifier()
+ let identity2 = s._rawIdentifier()
expectTrue(isNativeSet(s))
expectEqual(4, s.count)
@@ -1664,17 +1663,16 @@
SetTestSuite.test("BridgedFromObjC.Verbatim.Remove") {
do {
var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
- var deleted: AnyObject? = s.remove(TestObjCKeyTy(0))
- expectNil(deleted)
+ expectNil(s.remove(TestObjCKeyTy(0)))
expectEqual(identity1, s._rawIdentifier())
expectTrue(isCocoaSet(s))
- deleted = s.remove(TestObjCKeyTy(1010))
- expectEqual(1010, deleted!.value)
- var identity2 = s._rawIdentifier()
+ let deleted = s.remove(TestObjCKeyTy(1010)) as? TestObjCKeyTy
+ expectEqual(1010, deleted?.value)
+ let identity2 = s._rawIdentifier()
expectNotEqual(identity1, identity2)
expectTrue(isNativeSet(s))
expectEqual(2, s.count)
@@ -1686,23 +1684,22 @@
}
do {
- var s1 = getBridgedVerbatimSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getBridgedVerbatimSet()
+ let identity1 = s1._rawIdentifier()
var s2 = s1
expectTrue(isCocoaSet(s1))
expectTrue(isCocoaSet(s2))
- var deleted: AnyObject? = s2.remove(TestObjCKeyTy(0))
- expectNil(deleted)
+ expectNil(s2.remove(TestObjCKeyTy(0)))
expectEqual(identity1, s1._rawIdentifier())
expectEqual(identity1, s2._rawIdentifier())
expectTrue(isCocoaSet(s1))
expectTrue(isCocoaSet(s2))
- deleted = s2.remove(TestObjCKeyTy(1010))
- expectEqual(1010, deleted!.value)
- var identity2 = s2._rawIdentifier()
+ let deleted = s2.remove(TestObjCKeyTy(1010)) as? TestObjCKeyTy
+ expectEqual(1010, deleted?.value)
+ let identity2 = s2._rawIdentifier()
expectNotEqual(identity1, identity2)
expectTrue(isCocoaSet(s1))
expectTrue(isNativeSet(s2))
@@ -1726,7 +1723,7 @@
do {
var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
// Trying to remove something not in the set should
@@ -1740,7 +1737,7 @@
// not create a new set altogether, however.
deleted = s.remove(TestBridgedKeyTy(1010))
expectEqual(1010, deleted!.value)
- var identity2 = s._rawIdentifier()
+ let identity2 = s._rawIdentifier()
expectEqual(identity1, identity2)
expectTrue(isNativeSet(s))
expectEqual(2, s.count)
@@ -1757,7 +1754,7 @@
}
do {
- var s1 = getBridgedNonverbatimSet()
+ let s1 = getBridgedNonverbatimSet()
let identity1 = s1._rawIdentifier()
var s2 = s1
@@ -1794,7 +1791,7 @@
SetTestSuite.test("BridgedFromObjC.Verbatim.RemoveAll") {
do {
var s = getBridgedVerbatimSet([])
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
expectEqual(0, s.count)
@@ -1805,7 +1802,7 @@
do {
var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
expectEqual(3, s.count)
expectTrue(s.contains(TestBridgedKeyTy(1010) as NSObject))
@@ -1813,18 +1810,19 @@
s.removeAll()
expectEqual(0, s.count)
expectFalse(s.contains(TestBridgedKeyTy(1010) as NSObject))
+ expectNotEqual(identity1, s._rawIdentifier())
}
do {
- var s1 = getBridgedVerbatimSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getBridgedVerbatimSet()
+ let identity1 = s1._rawIdentifier()
expectTrue(isCocoaSet(s1))
expectEqual(3, s1.count)
expectTrue(s1.contains(TestBridgedKeyTy(1010) as NSObject))
var s2 = s1
s2.removeAll()
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity2, identity1)
expectEqual(3, s1.count)
@@ -1834,15 +1832,15 @@
}
do {
- var s1 = getBridgedVerbatimSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getBridgedVerbatimSet()
+ let identity1 = s1._rawIdentifier()
expectTrue(isCocoaSet(s1))
expectEqual(3, s1.count)
expectTrue(s1.contains(TestBridgedKeyTy(1010) as NSObject))
var s2 = s1
s2.removeAll(keepingCapacity: true)
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity2, identity1)
expectEqual(3, s1.count)
@@ -1855,7 +1853,7 @@
SetTestSuite.test("BridgedFromObjC.Nonverbatim.RemoveAll") {
do {
var s = getBridgedNonverbatimSet([])
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
expectEqual(0, s.count)
@@ -1866,7 +1864,7 @@
do {
var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
expectEqual(3, s.count)
expectTrue(s.contains(TestBridgedKeyTy(1010)))
@@ -1874,18 +1872,19 @@
s.removeAll()
expectEqual(0, s.count)
expectFalse(s.contains(TestBridgedKeyTy(1010)))
+ expectNotEqual(identity1, s._rawIdentifier())
}
do {
- var s1 = getBridgedNonverbatimSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getBridgedNonverbatimSet()
+ let identity1 = s1._rawIdentifier()
expectTrue(isNativeSet(s1))
expectEqual(3, s1.count)
expectTrue(s1.contains(TestBridgedKeyTy(1010)))
var s2 = s1
s2.removeAll()
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity2, identity1)
expectEqual(3, s1.count)
@@ -1895,15 +1894,15 @@
}
do {
- var s1 = getBridgedNonverbatimSet()
- var identity1 = s1._rawIdentifier()
+ let s1 = getBridgedNonverbatimSet()
+ let identity1 = s1._rawIdentifier()
expectTrue(isNativeSet(s1))
expectEqual(3, s1.count)
expectTrue(s1.contains(TestBridgedKeyTy(1010)))
var s2 = s1
s2.removeAll(keepingCapacity: true)
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectEqual(identity1, s1._rawIdentifier())
expectNotEqual(identity2, identity1)
expectEqual(3, s1.count)
@@ -1914,8 +1913,8 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.Count") {
- var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedVerbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
expectEqual(3, s.count)
@@ -1923,8 +1922,8 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.Count") {
- var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedNonverbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
expectEqual(3, s.count)
@@ -1932,8 +1931,8 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.Generate") {
- var s = getBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedVerbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
var iter = s.makeIterator()
@@ -1949,8 +1948,8 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.Generate") {
- var s = getBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getBridgedNonverbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
var iter = s.makeIterator()
@@ -1966,8 +1965,8 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.Generate_Empty") {
- var s = getBridgedVerbatimSet([])
- var identity1 = s._rawIdentifier()
+ let s = getBridgedVerbatimSet([])
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
var iter = s.makeIterator()
@@ -1979,8 +1978,8 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.Generate_Empty") {
- var s = getBridgedNonverbatimSet([])
- var identity1 = s._rawIdentifier()
+ let s = getBridgedNonverbatimSet([])
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
var iter = s.makeIterator()
@@ -1992,8 +1991,8 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.Generate_Huge") {
- var s = getHugeBridgedVerbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getHugeBridgedVerbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isCocoaSet(s))
var iter = s.makeIterator()
@@ -2009,8 +2008,8 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.Generate_Huge") {
- var s = getHugeBridgedNonverbatimSet()
- var identity1 = s._rawIdentifier()
+ let s = getHugeBridgedNonverbatimSet()
+ let identity1 = s._rawIdentifier()
expectTrue(isNativeSet(s))
var iter = s.makeIterator()
@@ -2026,7 +2025,7 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.EqualityTest_Empty") {
- var s1 = getBridgedVerbatimSet([])
+ let s1 = getBridgedVerbatimSet([])
expectTrue(isCocoaSet(s1))
var s2 = getBridgedVerbatimSet([])
@@ -2041,12 +2040,12 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.EqualityTest_Empty") {
- var s1 = getBridgedNonverbatimSet([])
- var identity1 = s1._rawIdentifier()
+ let s1 = getBridgedNonverbatimSet([])
+ let identity1 = s1._rawIdentifier()
expectTrue(isNativeSet(s1))
var s2 = getBridgedNonverbatimSet([])
- var identity2 = s2._rawIdentifier()
+ let identity2 = s2._rawIdentifier()
expectTrue(isNativeSet(s2))
expectNotEqual(identity1, identity2)
@@ -2064,11 +2063,11 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.EqualityTest_Small") {
- var s1 = getBridgedVerbatimSet()
+ let s1 = getBridgedVerbatimSet()
let identity1 = s1._rawIdentifier()
expectTrue(isCocoaSet(s1))
- var s2 = getBridgedVerbatimSet()
+ let s2 = getBridgedVerbatimSet()
let identity2 = s2._rawIdentifier()
expectTrue(isCocoaSet(s2))
expectNotEqual(identity1, identity2)
@@ -2079,11 +2078,11 @@
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.EqualityTest_Small") {
- var s1 = getBridgedNonverbatimSet()
+ let s1 = getBridgedNonverbatimSet()
let identity1 = s1._rawIdentifier()
expectTrue(isNativeSet(s1))
- var s2 = getBridgedNonverbatimSet()
+ let s2 = getBridgedNonverbatimSet()
let identity2 = s2._rawIdentifier()
expectTrue(isNativeSet(s2))
expectNotEqual(identity1, identity2)
@@ -2094,7 +2093,7 @@
}
SetTestSuite.test("BridgedFromObjC.Verbatim.ArrayOfSets") {
- var nsa = NSMutableArray()
+ let nsa = NSMutableArray()
for i in 0..<3 {
nsa.add(
getAsNSSet([1 + i, 2 + i, 3 + i]))
@@ -2102,20 +2101,20 @@
var a = nsa as [AnyObject] as! [Set<NSObject>]
for i in 0..<3 {
- var s = a[i]
+ let s = a[i]
var iter = s.makeIterator()
var items: [Int] = []
while let value = iter.next() {
let v = (value as! TestObjCKeyTy).value
items.append(v)
}
- var expectedItems = [1 + i, 2 + i, 3 + i]
+ let expectedItems = [1 + i, 2 + i, 3 + i]
expectTrue(equalsUnordered(items, expectedItems))
}
}
SetTestSuite.test("BridgedFromObjC.Nonverbatim.ArrayOfSets") {
- var nsa = NSMutableArray()
+ let nsa = NSMutableArray()
for i in 0..<3 {
nsa.add(
getAsNSSet([1 + i, 2 + i, 3 + i]))
@@ -2123,13 +2122,13 @@
var a = nsa as [AnyObject] as! [Set<TestBridgedKeyTy>]
for i in 0..<3 {
- var d = a[i]
+ let d = a[i]
var iter = d.makeIterator()
var items: [Int] = []
while let value = iter.next() {
items.append(value.value)
}
- var expectedItems = [1 + i, 2 + i, 3 + i]
+ let expectedItems = [1 + i, 2 + i, 3 + i]
expectTrue(equalsUnordered(items, expectedItems))
}
}
@@ -2191,7 +2190,7 @@
// types.
expectNil(s.member(TestObjCInvalidKeyTy()))
- for i in 0..<3 {
+ for _ in 0..<3 {
expectEqual(idValue10,
unsafeBitCast(s.member(TestObjCKeyTy(1010)).map { $0 as AnyObject }, to: UInt.self))
@@ -2425,7 +2424,7 @@
}
let nss: NSSet = s as NSSet
- expectTrue(equalsUnordered(Array(s).map { $0.value }, [1010, 2020, 3030]))
+ expectTrue(equalsUnordered(Array(nss).map { ($0 as! TestObjCKeyTy).value }, [1010, 2020, 3030]))
}
//
@@ -2438,7 +2437,7 @@
s.insert(TestObjCKeyTy(i))
}
- var sAsAnyObject: Set<NSObject> = _setUpCast(s)
+ let sAsAnyObject: Set<NSObject> = _setUpCast(s)
expectEqual(3, sAsAnyObject.count)
expectTrue(sAsAnyObject.contains(TestObjCKeyTy(1010)))
@@ -2452,7 +2451,7 @@
s.insert(TestObjCKeyTy(i))
}
- var sAsAnyObject: Set<NSObject> = s
+ let sAsAnyObject: Set<NSObject> = s
expectEqual(3, sAsAnyObject.count)
expectTrue(sAsAnyObject.contains(TestObjCKeyTy(1010)))
@@ -2467,7 +2466,7 @@
}
do {
- var s: Set<NSObject> = _setBridgeToObjectiveC(s)
+ let s: Set<NSObject> = _setBridgeToObjectiveC(s)
expectTrue(s.contains(TestBridgedKeyTy(1010) as NSObject))
expectTrue(s.contains(TestBridgedKeyTy(2020) as NSObject))
@@ -2475,7 +2474,7 @@
}
do {
- var s: Set<TestObjCKeyTy> = _setBridgeToObjectiveC(s)
+ let s: Set<TestObjCKeyTy> = _setBridgeToObjectiveC(s)
expectEqual(3, s.count)
expectTrue(s.contains(TestBridgedKeyTy(1010) as TestObjCKeyTy))
@@ -2491,7 +2490,7 @@
}
do {
- var s = s as! Set<NSObject>
+ let s = s as Set<NSObject>
expectEqual(3, s.count)
expectTrue(s.contains(TestBridgedKeyTy(1010) as NSObject))
@@ -2500,7 +2499,7 @@
}
do {
- var s = s as Set<TestObjCKeyTy>
+ let s = s as Set<TestObjCKeyTy>
expectEqual(3, s.count)
expectTrue(s.contains(TestBridgedKeyTy(1010) as TestObjCKeyTy))
@@ -2563,9 +2562,7 @@
// Unsuccessful downcast
s.insert("Hello, world" as NSString)
- if let sCC = _setDownCastConditional(s) as Set<TestObjCKeyTy>? {
- expectTrue(false)
- }
+ expectNil(_setDownCastConditional(s) as Set<TestObjCKeyTy>?)
}
SetTestSuite.test("SetDowncastConditional") {
@@ -2586,7 +2583,7 @@
// Unsuccessful downcast
s.insert("Hello, world, I'm your wild girl. I'm your ch-ch-ch-ch-ch-ch cherry bomb" as NSString)
- if let sCC = s as? Set<TestObjCKeyTy> {
+ if s is Set<TestObjCKeyTy> {
expectTrue(false)
}
}
@@ -2652,9 +2649,7 @@
// Unsuccessful downcasts
s.insert("Hello, world, I'm your wild girl. I'm your ch-ch-ch-ch-ch-ch cherry bomb" as NSString)
- if let sVC = _setBridgeFromObjectiveCConditional(s) as Set<TestBridgedKeyTy>? {
- expectTrue(false)
- }
+ expectNil(_setBridgeFromObjectiveCConditional(s) as Set<TestBridgedKeyTy>?)
}
SetTestSuite.test("SetBridgeFromObjectiveCConditional") {
@@ -2685,13 +2680,13 @@
// Unsuccessful downcasts
s.insert("Hello, world, I'm your wild girl. I'm your ch-ch-ch-ch-ch-ch cherry bomb" as NSString)
- if let sCm = s as? Set<TestObjCKeyTy> {
+ if s is Set<TestObjCKeyTy> {
expectTrue(false)
}
- if let sVC = s as? Set<TestBridgedKeyTy> {
+ if s is Set<TestBridgedKeyTy> {
expectTrue(false)
}
- if let sVm = s as? Set<TestBridgedKeyTy> {
+ if s is Set<TestBridgedKeyTy> {
expectTrue(false)
}
}
@@ -2738,7 +2733,6 @@
SetTestSuite.test("isSubsetOf.Set.Sequence") {
let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060])
- let s2 = AnySequence([1010, 2020, 3030])
expectTrue(Set<Int>().isSubset(of: s1))
expectFalse(s1.isSubset(of: Set<Int>()))
expectTrue(s1.isSubset(of: s1))
@@ -2746,7 +2740,6 @@
SetTestSuite.test("isStrictSubsetOf.Set.Set") {
let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060])
- let s2 = Set([1010, 2020, 3030])
expectTrue(Set<Int>().isStrictSubset(of: s1))
expectFalse(s1.isStrictSubset(of: Set<Int>()))
expectFalse(s1.isStrictSubset(of: s1))
@@ -2754,7 +2747,6 @@
SetTestSuite.test("isStrictSubsetOf.Set.Sequence") {
let s1 = Set([1010, 2020, 3030, 4040, 5050, 6060])
- let s2 = AnySequence([1010, 2020, 3030])
expectTrue(Set<Int>().isStrictSubset(of: s1))
expectFalse(s1.isStrictSubset(of: Set<Int>()))
expectFalse(s1.isStrictSubset(of: s1))
@@ -2940,13 +2932,13 @@
SetTestSuite.test("formUnion") {
// These are anagrams - they should amount to the same sets.
- var s1 = Set("the morse code".characters)
- let s2 = Set("here come dots".characters)
- let s3 = Set("and then dashes".characters)
+ var s1 = Set("the morse code")
+ let s2 = Set("here come dots")
+ let s3 = Set("and then dashes")
let identity1 = s1._rawIdentifier()
- s1.formUnion("".characters)
+ s1.formUnion("")
expectEqual(identity1, s1._rawIdentifier())
expectEqual(s1, s2)
@@ -3006,16 +2998,14 @@
SetTestSuite.test("intersect") {
let s1 = Set([1010, 2020, 3030])
- let s2 = Set([4040, 5050, 6060])
- var s3 = Set([1010, 2020, 3030, 4040, 5050, 6060])
- var s4 = Set([1010, 2020, 3030])
+ let s2 = Set([1010, 2020, 3030, 4040, 5050, 6060])
let identity1 = s1._rawIdentifier()
expectEqual(Set([1010, 2020, 3030]),
Set([1010, 2020, 3030]).intersection(Set([1010, 2020, 3030])) as Set<Int>)
expectEqual(identity1, s1._rawIdentifier())
- expectEqual(s1, s1.intersection(s3))
+ expectEqual(s1, s1.intersection(s2))
expectEqual(identity1, s1._rawIdentifier())
expectEqual(Set<Int>(), Set<Int>().intersection(Set<Int>()))
@@ -3041,7 +3031,7 @@
s3.formIntersection(s2)
expectEqual(s3, s2)
expectTrue(s1.isDisjoint(with: s3))
- expectNotEqual(identity1, s3._rawIdentifier())
+ expectNotEqual(identity2, s3._rawIdentifier())
var s5 = Set<Int>()
s5.formIntersection(s5)
@@ -3279,26 +3269,26 @@
SetTestSuite.test("isEmpty/ImplementationIsCustomized") {
do {
- var d = getMockSetWithCustomCount(count: 0)
+ let d = getMockSetWithCustomCount(count: 0)
MockSetWithCustomCount.timesCountWasCalled = 0
expectTrue(d.isEmpty)
expectEqual(1, MockSetWithCustomCount.timesCountWasCalled)
}
do {
- var d = getMockSetWithCustomCount(count: 0)
+ let d = getMockSetWithCustomCount(count: 0)
MockSetWithCustomCount.timesCountWasCalled = 0
expectTrue(callGenericIsEmpty(d))
expectEqual(1, MockSetWithCustomCount.timesCountWasCalled)
}
do {
- var d = getMockSetWithCustomCount(count: 4)
+ let d = getMockSetWithCustomCount(count: 4)
MockSetWithCustomCount.timesCountWasCalled = 0
expectFalse(d.isEmpty)
expectEqual(1, MockSetWithCustomCount.timesCountWasCalled)
}
do {
- var d = getMockSetWithCustomCount(count: 4)
+ let d = getMockSetWithCustomCount(count: 4)
MockSetWithCustomCount.timesCountWasCalled = 0
expectFalse(callGenericIsEmpty(d))
expectEqual(1, MockSetWithCustomCount.timesCountWasCalled)
@@ -3308,7 +3298,6 @@
SetTestSuite.test("count") {
let s1 = Set([1010, 2020, 3030])
- var s2 = Set([4040, 5050, 6060])
expectEqual(0, Set<Int>().count)
expectEqual(3, s1.count)
}
@@ -3436,7 +3425,7 @@
}
do {
- var s = Set(["Hello", "world"])
+ let s = Set(["Hello", "world"])
expectTrue(s.contains("Hello"))
expectTrue(s.contains("world"))
}
@@ -3481,7 +3470,7 @@
SetTestSuite.test("mutationDoesNotAffectIterator/remove,1") {
var set = Set([1010, 1020, 1030])
- var iter = set.makeIterator()
+ let iter = set.makeIterator()
expectOptionalEqual(1010, set.remove(1010))
expectEqualsUnordered([1010, 1020, 1030], Array(IteratorSequence(iter)))
@@ -3489,7 +3478,7 @@
SetTestSuite.test("mutationDoesNotAffectIterator/remove,all") {
var set = Set([1010, 1020, 1030])
- var iter = set.makeIterator()
+ let iter = set.makeIterator()
expectOptionalEqual(1010, set.remove(1010))
expectOptionalEqual(1020, set.remove(1020))
expectOptionalEqual(1030, set.remove(1030))
@@ -3499,7 +3488,7 @@
SetTestSuite.test("mutationDoesNotAffectIterator/removeAll,keepingCapacity=false") {
var set = Set([1010, 1020, 1030])
- var iter = set.makeIterator()
+ let iter = set.makeIterator()
set.removeAll(keepingCapacity: false)
expectEqualsUnordered([1010, 1020, 1030], Array(IteratorSequence(iter)))
@@ -3507,7 +3496,7 @@
SetTestSuite.test("mutationDoesNotAffectIterator/removeAll,keepingCapacity=true") {
var set = Set([1010, 1020, 1030])
- var iter = set.makeIterator()
+ let iter = set.makeIterator()
set.removeAll(keepingCapacity: true)
expectEqualsUnordered([1010, 1020, 1030], Array(IteratorSequence(iter)))
diff --git a/validation-test/stdlib/SwiftNativeNSBase.swift b/validation-test/stdlib/SwiftNativeNSBase.swift
index 753ac9e..c792b83 100644
--- a/validation-test/stdlib/SwiftNativeNSBase.swift
+++ b/validation-test/stdlib/SwiftNativeNSBase.swift
@@ -15,7 +15,7 @@
// RUN: %target-clang %S/Inputs/SwiftNativeNSBase/SwiftNativeNSBase.m -c -o %t/SwiftNativeNSBase.o -g
// RUN: %target-clang -fobjc-arc %S/Inputs/SlurpFastEnumeration/SlurpFastEnumeration.m -c -o %t/SlurpFastEnumeration.o
// RUN: echo '#sourceLocation(file: "%s", line: 1)' > "%t/main.swift" && cat "%s" >> "%t/main.swift" && chmod -w "%t/main.swift"
-// RUN: %target-build-swift -Xfrontend -disable-access-control %t/main.swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift -I %S/Inputs/SwiftNativeNSBase/ -I %S/Inputs/SlurpFastEnumeration/ -Xlinker %t/SlurpFastEnumeration.o -Xlinker %t/SwiftNativeNSBase.o -o %t/SwiftNativeNSBase -swift-version 3
+// RUN: %target-build-swift -Xfrontend -disable-access-control %t/main.swift %S/Inputs/DictionaryKeyValueTypes.swift %S/Inputs/DictionaryKeyValueTypesObjC.swift -I %S/Inputs/SwiftNativeNSBase/ -I %S/Inputs/SlurpFastEnumeration/ -Xlinker %t/SlurpFastEnumeration.o -Xlinker %t/SwiftNativeNSBase.o -o %t/SwiftNativeNSBase -swift-version 4.2
// RUN: %target-codesign %t/SwiftNativeNSBase
// RUN: %target-run %t/SwiftNativeNSBase
// REQUIRES: executable_test