fix(cua): compile batch attribute regression assertions

This commit is contained in:
creatixchu committed 2026-09-24 19:24:42 +08:00
1 parent c327aa7ddd
commit 6b3a196a3f
2 files changed
+3 -2

No files matched your search

@@ -172,9 +172,10 @@ final class AXAccess {
let error = AXUIElementCopyMultipleAttributeValues(element, names as CFArray, [], &output)
if error == .notImplemented || error == .attributeUnsupported { return nil }
guard error == .success else { throw failure(error, "read node attributes") }
guard let output, let values = output as? [AnyObject], values.count == names.count else {
guard let output, CFArrayGetCount(output) == names.count else {
throw NativeFailure(code: "NATIVE_ERROR", message: "Accessibility batch returned mismatched attribute values")
}
let values = output as [AnyObject]
return Dictionary(uniqueKeysWithValues: zip(names, values))
}
static func batchAttribute(_ value: CFTypeRef, name: String) throws -> CFTypeRef? {
@@ -30,7 +30,7 @@ private func wrappedAXError(_ code: AXError) throws -> AXValue {
let position = try #require(AXValueCreate(.cgPoint, &point))
let values: [CFTypeRef] = ["Title" as CFString, kCFBooleanTrue, NSNumber(value: 7), [] as CFArray, position]
for value in values {
let decoded = try #require(AXAccess.batchAttribute(value, name: "AXValue"))
let decoded = try #require(try AXAccess.batchAttribute(value, name: "AXValue"))
#expect(CFGetTypeID(decoded) == CFGetTypeID(value))
#expect(CFEqual(decoded, value))
}