Skip to content

Commit

Permalink
Fix warnings in Swift 4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
dfed committed Mar 30, 2018
1 parent 23ac265 commit 2382502
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 5 deletions.
9 changes: 8 additions & 1 deletion Sources/Internal/Keychain.swift
Expand Up @@ -202,11 +202,18 @@ internal final class Keychain {
return SecItem.DataResult.success(Set([singleKey]))

} else if let multipleMatches = collection as? [[String: AnyHashable]] {
#if swift(>=4.1)
return SecItem.DataResult.success(Set(multipleMatches.compactMap({ attributes in
let key = attributes[kSecAttrAccount as String] as? String
return key != canaryKey ? key : nil
})))
#else
return SecItem.DataResult.success(Set(multipleMatches.flatMap({ attributes in
let key = attributes[kSecAttrAccount as String] as? String
return key != canaryKey ? key : nil
})))

#endif

} else {
return SecItem.DataResult.success(Set())
}
Expand Down
18 changes: 16 additions & 2 deletions Tests/SecureEnclaveTests.swift
Expand Up @@ -102,10 +102,17 @@ class SecureEnclaveTests: XCTestCase
guard testEnvironmentIsSigned() else {
return
}


#if swift(>=4.1)
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().compactMap { accessControl in
return .valet(with: valet.identifier, accessControl: accessControl)
}
#else
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().flatMap { accessControl in
return .valet(with: valet.identifier, accessControl: accessControl)
}
#endif

for permutation in permutations {
XCTAssertTrue(permutation.canAccessKeychain())
}
Expand All @@ -126,10 +133,17 @@ class SecureEnclaveTests: XCTestCase
#else
XCTFail()
#endif


#if swift(>=4.1)
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().compactMap { accessControl in
return .sharedAccessGroupValet(with: sharedAccessGroupIdentifier, accessControl: accessControl)
}
#else
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().flatMap { accessControl in
return .sharedAccessGroupValet(with: sharedAccessGroupIdentifier, accessControl: accessControl)
}
#endif

for permutation in permutations {
XCTAssertTrue(permutation.canAccessKeychain())
}
Expand Down
18 changes: 16 additions & 2 deletions Tests/SinglePromptSecureEnclaveTests.swift
Expand Up @@ -128,10 +128,17 @@ class SinglePromptSecureEnclaveTests: XCTestCase
guard testEnvironmentIsSigned() else {
return
}


#if swift(>=4.1)
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().compactMap { accessControl in
return .valet(with: valet.identifier, accessControl: accessControl)
}
#else
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().flatMap { accessControl in
return .valet(with: valet.identifier, accessControl: accessControl)
}
#endif

for permutation in permutations {
XCTAssertTrue(permutation.canAccessKeychain())
}
Expand All @@ -150,10 +157,17 @@ class SinglePromptSecureEnclaveTests: XCTestCase
#else
XCTFail()
#endif


#if swift(>=4.1)
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().compactMap { accessControl in
return .sharedAccessGroupValet(with: sharedAccessGroupIdentifier, accessControl: accessControl)
}
#else
let permutations: [SecureEnclaveValet] = SecureEnclaveAccessControl.allValues().flatMap { accessControl in
return .sharedAccessGroupValet(with: sharedAccessGroupIdentifier, accessControl: accessControl)
}
#endif

for permutation in permutations {
XCTAssertTrue(permutation.canAccessKeychain())
}
Expand Down

0 comments on commit 2382502

Please sign in to comment.