mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
stdlib: Address a couple of ABI FIXMEs by deleting code
We have an implicit conversion to AnyHashable, so there's no need to have the special subscript on Dictionary at all.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This source file is part of the Swift.org open source project
|
||||
//
|
||||
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
||||
// Licensed under Apache License v2.0 with Runtime Library Exception
|
||||
//
|
||||
// See https://swift.org/LICENSE.txt for license information
|
||||
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Convenience APIs for Set<AnyHashable>
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
extension Set where Element == AnyHashable {
|
||||
public mutating func insert<ConcreteElement : Hashable>(
|
||||
_ newMember: ConcreteElement
|
||||
) -> (inserted: Bool, memberAfterInsert: ConcreteElement) {
|
||||
let (inserted, memberAfterInsert) =
|
||||
insert(AnyHashable(newMember))
|
||||
return (
|
||||
inserted: inserted,
|
||||
memberAfterInsert: memberAfterInsert.base as! ConcreteElement)
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
public mutating func update<ConcreteElement : Hashable>(
|
||||
with newMember: ConcreteElement
|
||||
) -> ConcreteElement? {
|
||||
return update(with: AnyHashable(newMember))
|
||||
.map { $0.base as! ConcreteElement }
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
public mutating func remove<ConcreteElement : Hashable>(
|
||||
_ member: ConcreteElement
|
||||
) -> ConcreteElement? {
|
||||
return remove(AnyHashable(member))
|
||||
.map { $0.base as! ConcreteElement }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user