Skip to content

Commit 3578c7e

Browse files
authored
Merge pull request #1448 from johnno1962d/swift-4.1-branch
2 parents 206419e + e426592 commit 3578c7e

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

Foundation/NSDictionary.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,7 @@ open class NSMutableDictionary : NSDictionary {
586586
guard type(of: self) === NSDictionary.self || type(of: self) === NSMutableDictionary.self else {
587587
NSRequiresConcreteImplementation()
588588
}
589-
_storage[(aKey as! NSObject)] = _SwiftValue.store(anObject)
589+
_storage[_SwiftValue.store(aKey)] = _SwiftValue.store(anObject)
590590
}
591591

592592
public convenience required init() {

TestFoundation/TestNSDictionary.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class TestNSDictionary : XCTestCase {
3232
("test_mutableCopying", test_mutableCopying),
3333
("test_writeToFile", test_writeToFile),
3434
("test_initWithContentsOfFile", test_initWithContentsOfFile),
35+
("test_settingWithStringKey", test_settingWithStringKey),
3536
]
3637
}
3738

@@ -222,6 +223,12 @@ class TestNSDictionary : XCTestCase {
222223
}
223224
}
224225

226+
func test_settingWithStringKey() {
227+
let dict = NSMutableDictionary()
228+
// has crashed in the past
229+
dict["stringKey"] = "value"
230+
}
231+
225232
private func createTestFile(_ path: String, _contents: Data) -> String? {
226233
let tempDir = NSTemporaryDirectory() + "TestFoundation_Playground_" + NSUUID().uuidString + "/"
227234
do {

0 commit comments

Comments
 (0)