From 6442cbe990941450bbfe5b1612746f84ea9c2092 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 20 Sep 2024 04:11:08 +0200 Subject: [PATCH 1/6] Update to Xcode 16.0 Beta 1 --- .github/workflows/ci.yml | 2 +- Cargo.lock | 1 + crates/header-translator/src/availability.rs | 4 +- crates/header-translator/src/expr.rs | 36 ++++++++--- crates/header-translator/src/main.rs | 8 ++- crates/header-translator/src/rust_type.rs | 17 ++++- crates/header-translator/src/stmt.rs | 19 ++++-- .../header-translator/src/unexposed_attr.rs | 2 + .../src/topics/about_generated/CHANGELOG.md | 48 ++++++++++++++ .../src/topics/about_generated/README.md | 12 ++-- .../objc2-accessibility/Cargo.toml | 1 + framework-crates/objc2-app-kit/Cargo.toml | 30 ++++++++- .../objc2-app-kit/translation-config.toml | 3 + .../objc2-authentication-services/Cargo.toml | 36 ++++++++++- .../translation-config.toml | 4 ++ .../Cargo.toml | 6 +- .../objc2-background-tasks/Cargo.toml | 5 +- framework-crates/objc2-cloud-kit/Cargo.toml | 21 +++---- framework-crates/objc2-core-image/Cargo.toml | 3 + .../objc2-core-location/Cargo.toml | 2 + .../translation-config.toml | 3 + framework-crates/objc2-core-ml/Cargo.toml | 14 +++++ framework-crates/objc2-core-motion/Cargo.toml | 5 ++ .../objc2-file-provider/Cargo.toml | 8 +++ framework-crates/objc2-foundation/Cargo.toml | 4 ++ framework-crates/objc2-game-kit/Cargo.toml | 1 + framework-crates/objc2-health-kit/Cargo.toml | 42 ++++++++++++- .../objc2-local-authentication/Cargo.toml | 25 ++++++++ framework-crates/objc2-map-kit/Cargo.toml | 33 ++++++++++ .../objc2-map-kit/translation-config.toml | 5 ++ framework-crates/objc2-metal-fx/Cargo.toml | 2 + framework-crates/objc2-metal-kit/Cargo.toml | 3 + .../objc2-metal/Cargo.modified.toml | 1 + framework-crates/objc2-metal/Cargo.toml | 27 +++++++- .../objc2-network-extension/Cargo.toml | 2 + .../translation-config.toml | 21 +++++++ framework-crates/objc2-photos/Cargo.toml | 2 +- framework-crates/objc2-quartz-core/Cargo.toml | 1 + .../objc2-screen-capture-kit/Cargo.toml | 5 ++ .../translation-config.toml | 9 +++ framework-crates/objc2-speech/Cargo.toml | 7 ++- framework-crates/objc2-ui-kit/Cargo.toml | 63 +++++++++++++++++++ .../objc2-ui-kit/translation-config.toml | 7 +++ .../objc2-user-notifications/Cargo.toml | 2 + .../translation-config.toml | 3 + .../objc2-virtualization/Cargo.toml | 22 +++++++ framework-crates/objc2-vision/Cargo.toml | 7 +++ generated | 2 +- 48 files changed, 537 insertions(+), 49 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c09f50560..acfdae9b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -272,7 +272,7 @@ jobs: - lint env: - DEVELOPER_DIR: /Applications/Xcode_15.4.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer steps: - uses: actions/checkout@v4 diff --git a/Cargo.lock b/Cargo.lock index 685330634..34cc44df0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -423,6 +423,7 @@ dependencies = [ "objc2-core-image", "objc2-foundation", "objc2-quartz-core", + "objc2-uniform-type-identifiers", ] [[package]] diff --git a/crates/header-translator/src/availability.rs b/crates/header-translator/src/availability.rs index 29a40b70e..2d48a6d2c 100644 --- a/crates/header-translator/src/availability.rs +++ b/crates/header-translator/src/availability.rs @@ -63,7 +63,9 @@ impl Availability { if let Some(m) = availability.message { if let Some(message) = message.as_deref() { if m != message { - error!(m, message, "message availability attributes were not equal"); + // TODO: Either use `cfg_attr` on the `deprecated` + // attributes, or merge it into a single string. + warn!(m, message, "message availability attributes were not equal"); } } message = Some(m); diff --git a/crates/header-translator/src/expr.rs b/crates/header-translator/src/expr.rs index f15c1c1d1..256a0f476 100644 --- a/crates/header-translator/src/expr.rs +++ b/crates/header-translator/src/expr.rs @@ -1,4 +1,4 @@ -use std::collections::BTreeMap; +use std::collections::{BTreeMap, HashSet}; use std::fmt; use clang::token::TokenKind; @@ -6,7 +6,8 @@ use clang::{Entity, EntityKind, EntityVisitResult, EvaluationResult}; use crate::rust_type::Ty; use crate::stmt::{enum_constant_name, new_enum_id}; -use crate::{Context, ItemIdentifier}; +use crate::unexposed_attr::UnexposedAttr; +use crate::{immediate_children, Context, ItemIdentifier}; #[derive(Clone, Debug, PartialEq)] pub enum Token { @@ -27,7 +28,7 @@ pub enum Expr { Enum { id: ItemIdentifier, variant: String, - // TODO: Type + attrs: HashSet, }, Const(ItemIdentifier), // TODO: Type Var { @@ -180,9 +181,18 @@ impl Expr { let parent_id = new_enum_id(&parent, context); let name = entity.get_name().expect("EnumConstantDecl name"); if parent_id.name.is_some() { + let mut attrs = HashSet::new(); + immediate_children(&parent, |entity, _span| { + if let EntityKind::UnexposedAttr = entity.get_kind() { + if let Some(attr) = UnexposedAttr::parse(&entity, context) { + attrs.insert(attr); + } + } + }); Self::Enum { id: parent_id.map_name(|name| name.unwrap()), variant: name, + attrs, } } else { Self::Const(parent_id.map_name(|_| name)) @@ -256,17 +266,25 @@ impl fmt::Display for Expr { write!(f, "{}", id.path()) } } - Self::Enum { id, variant } => { + Self::Enum { id, variant, attrs } => { let pretty_name = enum_constant_name(&id.name, variant); - // Note: Even if we had the enum kind available here, we would - // not be able to avoid the `.0` here, as the expression must - // be `const`. - write!(f, "{}::{pretty_name}.0", id.name) + if attrs.contains(&UnexposedAttr::ClosedEnum) { + // Close enums are actual Rust `enum`s, so to get their + // value, we use an `as` cast. + // Using `usize` here is a hack, we should be using the + // actual enum type. + write!(f, "{}::{pretty_name} as usize", id.name) + } else { + // Note: Even though we have the enum kind available here, + // we cannot avoid the `.0` here, as the expression must + // be `const`. + write!(f, "{}::{pretty_name}.0", id.name) + } } Self::Const(id) => write!(f, "{}", id.name), Self::Var { id, ty } => { if ty.is_enum_through_typedef() { - write!(f, "{}.0", id.name) + write!(f, "{}.xxx", id.name) } else { write!(f, "{}", id.name) } diff --git a/crates/header-translator/src/main.rs b/crates/header-translator/src/main.rs index 93fe0697e..07fb80520 100644 --- a/crates/header-translator/src/main.rs +++ b/crates/header-translator/src/main.rs @@ -301,13 +301,19 @@ fn parse_sdk( if let Some(location) = context.get_location(&entity) { let library_name = location.library_name(); if library_span.as_ref().map(|(_, s)| &**s) != Some(library_name) { + // Drop old entered spans + library_span.take(); + file_span.take(); + // Enter new span library_span = Some(( debug_span!("library", name = library_name).entered(), library_name.to_string(), )); - file_span.take(); } if file_span.as_ref().map(|(_, l)| l) != Some(&location) { + // Drop old entered span + file_span.take(); + // Enter new span file_span = Some((debug_span!("file", ?location).entered(), location.clone())); } diff --git a/crates/header-translator/src/rust_type.rs b/crates/header-translator/src/rust_type.rs index f2da9dc71..4d0ff1f70 100644 --- a/crates/header-translator/src/rust_type.rs +++ b/crates/header-translator/src/rust_type.rs @@ -453,7 +453,12 @@ impl Ty { } match attr { - Some(UnexposedAttr::NonIsolated | UnexposedAttr::UIActor) => { + Some( + UnexposedAttr::NonIsolated + | UnexposedAttr::UIActor + | UnexposedAttr::Sendable + | UnexposedAttr::NonSendable, + ) => { // Ignored for now; these are usually also emitted on the method/property, // which is where they will be useful in any case. } @@ -476,13 +481,21 @@ impl Ty { let _span = debug_span!("ty3", ?ty).entered(); + while let TypeKind::Attributed = ty.get_kind() { + ty = ty + .get_modified_type() + .expect("attributed type to have modified type"); + } + + let _span = debug_span!("ty4", ?ty).entered(); + let elaborated_ty = ty; if let Some(true) = ty.is_elaborated() { ty = ty.get_elaborated_type().expect("elaborated"); } - let _span = debug_span!("ty4", ?ty).entered(); + let _span = debug_span!("ty5", ?ty).entered(); let get_is_const = |new: bool| { if new { diff --git a/crates/header-translator/src/stmt.rs b/crates/header-translator/src/stmt.rs index fd30908a3..6ba6d7184 100644 --- a/crates/header-translator/src/stmt.rs +++ b/crates/header-translator/src/stmt.rs @@ -1019,7 +1019,8 @@ impl Stmt { } match attr { // TODO - UnexposedAttr::Sendable => warn!("sendable on typedef"), + UnexposedAttr::Sendable => warn!("sendable typedef"), + UnexposedAttr::UIActor => warn!("main-thread-only typedef"), _ => kind = Some(attr), } } @@ -1290,7 +1291,15 @@ impl Stmt { immediate_children(entity, |entity, _span| match entity.get_kind() { EntityKind::UnexposedAttr => { if let Some(attr) = UnexposedAttr::parse(&entity, context) { - error!(?attr, "unknown attribute"); + match attr { + // Swift makes some statics associated with a + // certain type, which means it needs this to + // allow accessing them from any thread. We + // don't generally restrict statics in this + // fashion, so it shouldn't matter for us. + UnexposedAttr::NonIsolated => {} + attr => error!(?attr, "unknown attribute"), + } } } EntityKind::VisibilityAttr => {} @@ -2443,12 +2452,14 @@ impl Stmt { write!(f, "{}", self.cfg_gate_ln(config))?; writeln!(f, "pub type {} = {};", id.name, ty.typedef())?; } - None | Some(UnexposedAttr::BridgedTypedef) => { + kind => { + if !matches!(kind, None | Some(UnexposedAttr::BridgedTypedef)) { + error!("invalid alias kind {kind:?} for {ty:?}"); + } // "bridged" typedefs should use a normal type alias. write!(f, "{}", self.cfg_gate_ln(config))?; writeln!(f, "pub type {} = {};", id.name, ty.typedef())?; } - kind => panic!("invalid alias kind {kind:?} for {ty:?}"), } } }; diff --git a/crates/header-translator/src/unexposed_attr.rs b/crates/header-translator/src/unexposed_attr.rs index 0e90ecc35..4582ce2b5 100644 --- a/crates/header-translator/src/unexposed_attr.rs +++ b/crates/header-translator/src/unexposed_attr.rs @@ -125,11 +125,13 @@ impl UnexposedAttr { | "CI_GL_DEPRECATED_MAC" | "CIKL_DEPRECATED" | "CK_UNAVAILABLE" + | "CK_NEWLY_UNAVAILABLE" | "FPUI_AVAILABLE" | "MLCOMPUTE_AVAILABLE_STARTING" | "MLCOMPUTE_AVAILABLE_STARTING_BUT_DEPRECATED_MACOS14" | "MLCOMPUTE_CLASS_AVAILABLE_STARTING" | "MLCOMPUTE_ENUM_AVAILABLE_STARTING" + | "MODELCOLLECTION_SUNSET" | "MP_API" | "MP_DEPRECATED" | "MP_DEPRECATED_WITH_REPLACEMENT" diff --git a/crates/objc2/src/topics/about_generated/CHANGELOG.md b/crates/objc2/src/topics/about_generated/CHANGELOG.md index 3146f4a7d..36d113902 100644 --- a/crates/objc2/src/topics/about_generated/CHANGELOG.md +++ b/crates/objc2/src/topics/about_generated/CHANGELOG.md @@ -50,6 +50,28 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * **BREAKING**: Renamed `from_id_slice` to `from_retained_slice`. * **BREAKING**: Renamed `NSString::as_str` to `to_str`, and made it `unsafe`, since we cannot ensure that the given pool is actually the innermost pool. +* Updated SDK from Xcode 15.4 to 16.0. + + View the release notes to learn more details: + - [16.0](https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes) + + Breaking changes are noted elsewhere in this changelog entry. +* **BREAKING**: `NSWindowSharingReadWrite` was deprecated, and moved from + `NSWindowSharingType` to a separate static. +* **BREAKING**: Moved a few methods on AppKit `NSAttributedString` categories. + - `NSAttributedStringKitAdditions` moved to + `NSAttributedStringAppKitAdditions`. + - `NSMutableAttributedStringKitAdditions` moved to + `NSMutableAttributedStringAppKitAdditions`. + - `NSAttributedStringDocumentFormats` moved to + `NSAttributedStringAppKitDocumentFormats`. + - `NSAttributedStringAppKitAttributeFixing` moved to +* **BREAKING**: Make `"MTLResource"` a sub-protocol of the new `MTLAllocation`. + This makes a bunch of things cfg-gated behind `"MTLAllocation"`. +* **BREAKING**: Cfg-gated `LABiometryType` behind `"LABiometryType"` instead + of `"LAContext"`. +* **BREAKING**: Cfg-gated `HKAudiogramSensitivityPoint` behind + `"HKAudiogramSensitivityPoint"` instead of `"HKAudiogramSample"`. ### Deprecated * Moved `MainThreadMarker` from `objc2-foundation` to `objc2`. @@ -66,10 +88,36 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `UIDocumentProperties::initWithMetadata` - `UIDocumentProperties::metadata` - `UIDocumentProperties::setMetadata` +* **BREAKING**: Removed a bunch of deprecated methods in CloudKit: + - `CKFetchNotificationChangesOperation::initWithPreviousServerChangeToken` + - `CKFetchNotificationChangesOperation::previousServerChangeToken` + - `CKFetchNotificationChangesOperation::resultsLimit` + - `CKFetchNotificationChangesOperation::moreComing` + - `CKFetchNotificationChangesOperation::notificationChangedBlock` + - `CKMarkNotificationsReadOperation::initWithNotificationIDsToMarkRead` + - `CKMarkNotificationsReadOperation::notificationIDs` + - `CKMarkNotificationsReadOperation::markNotificationsReadCompletionBlock` + - `CKModifyBadgeOperation::initWithBadgeValue` + - `CKModifyBadgeOperation::initWithBadgeValue` + - `CKModifyBadgeOperation::badgeValue` + - `CKModifyBadgeOperation::modifyBadgeCompletionBlock` + - `CKModifyBadgeOperation::initWithBadgeValue` +* **BREAKING**: Removed `SCStreamDelegate::userDidStopStream`. ### Fixed * **BREAKING**: Converted function signatures into using `extern "C-unwind"`. This allows Rust and Objective-C unwinding to interoperate. +* Removed incorrectly declared `BGTask::new` method. +* **BREAKING**: Marked the following classes and protocols as `MainThreadOnly`: + - `ASAuthorizationControllerPresentationContextProviding`, + - `ASAccountAuthenticationModificationControllerPresentationContextProviding` + - `ASWebAuthenticationPresentationContextProviding` + - `EXHostViewControllerDelegate` + - `MKMapViewDelegate` + - `MTKViewDelegate` + - `UIToolTipConfiguration` + - `UIToolTipInteractionDelegate` + - `UITraitListEnvironment` ## 0.2.2 - 2024-05-21 diff --git a/crates/objc2/src/topics/about_generated/README.md b/crates/objc2/src/topics/about_generated/README.md index 5ab9ba34c..0c273e039 100644 --- a/crates/objc2/src/topics/about_generated/README.md +++ b/crates/objc2/src/topics/about_generated/README.md @@ -22,11 +22,11 @@ for the [`block2`] crate for how to call such methods using a closure. ## Currently supported versions -- macOS: `10.12-14.5` -- iOS/iPadOS: `10.0-17.5` (WIP) -- tvOS: `10.0-17.5` (WIP) -- watchOS: `5.0-10.5` (WIP) -- visionOS: `1.0-1.2` (WIP) +- macOS: `10.12-15.0` +- iOS/iPadOS: `10.0-18.0` (WIP) +- tvOS: `10.0-18.0` (WIP) +- watchOS: `5.0-11.0` (WIP) +- visionOS: `1.0-2.0` (WIP) -These bindings are currently generated from the SDKs in Xcode 15.4. +These bindings are currently generated from the SDKs in Xcode 16.0. The Xcode version will be periodically updated. diff --git a/framework-crates/objc2-accessibility/Cargo.toml b/framework-crates/objc2-accessibility/Cargo.toml index 8ebd7fb36..070f581ca 100644 --- a/framework-crates/objc2-accessibility/Cargo.toml +++ b/framework-crates/objc2-accessibility/Cargo.toml @@ -70,6 +70,7 @@ AXHearingUtilities = [ "objc2-foundation/NSUUID", ] AXSettings = [ + "objc2-foundation/NSError", "objc2-foundation/NSNotification", "objc2-foundation/NSString", ] diff --git a/framework-crates/objc2-app-kit/Cargo.toml b/framework-crates/objc2-app-kit/Cargo.toml index 30a229175..06433d65d 100644 --- a/framework-crates/objc2-app-kit/Cargo.toml +++ b/framework-crates/objc2-app-kit/Cargo.toml @@ -26,6 +26,7 @@ objc2-foundation = { path = "../objc2-foundation", version = "0.2.2", default-fe objc2-core-data = { path = "../objc2-core-data", version = "0.2.2", default-features = false, optional = true } objc2-core-image = { path = "../objc2-core-image", version = "0.2.2", default-features = false, optional = true } objc2-quartz-core = { path = "../objc2-quartz-core", version = "0.2.2", default-features = false, optional = true } +objc2-uniform-type-identifiers = { path = "../objc2-uniform-type-identifiers", version = "0.2.2", default-features = false, optional = true } [package.metadata.docs.rs] default-target = "aarch64-apple-darwin" @@ -42,8 +43,8 @@ targets = [ default = ["std"] # Currently not possible to turn off, put here for forwards compatibility. -std = ["alloc", "bitflags?/std", "block2?/std", "libc?/std", "objc2/std", "objc2-core-data?/std", "objc2-core-image?/std", "objc2-foundation/std", "objc2-quartz-core?/std"] -alloc = ["block2?/alloc", "objc2/alloc", "objc2-core-data?/alloc", "objc2-core-image?/alloc", "objc2-foundation/alloc", "objc2-quartz-core?/alloc"] +std = ["alloc", "bitflags?/std", "block2?/std", "libc?/std", "objc2/std", "objc2-core-data?/std", "objc2-core-image?/std", "objc2-foundation/std", "objc2-quartz-core?/std", "objc2-uniform-type-identifiers?/std"] +alloc = ["block2?/alloc", "objc2/alloc", "objc2-core-data?/alloc", "objc2-core-image?/alloc", "objc2-foundation/alloc", "objc2-quartz-core?/alloc", "objc2-uniform-type-identifiers?/alloc"] apple = [] gnustep-1-7 = ["objc2/gnustep-1-7", "block2?/gnustep-1-7", "objc2-foundation/gnustep-1-7", "objc2-core-data?/gnustep-1-7", "objc2-quartz-core?/gnustep-1-7"] gnustep-1-8 = ["gnustep-1-7", "objc2/gnustep-1-8", "block2?/gnustep-1-8", "objc2-foundation/gnustep-1-8", "objc2-core-data?/gnustep-1-8", "objc2-quartz-core?/gnustep-1-8"] @@ -51,11 +52,12 @@ gnustep-1-9 = ["gnustep-1-8", "objc2/gnustep-1-9", "block2?/gnustep-1-9", "objc2 gnustep-2-0 = ["gnustep-1-9", "objc2/gnustep-2-0", "block2?/gnustep-2-0", "objc2-foundation/gnustep-2-0", "objc2-core-data?/gnustep-2-0", "objc2-quartz-core?/gnustep-2-0"] gnustep-2-1 = ["gnustep-2-0", "objc2/gnustep-2-1", "block2?/gnustep-2-1", "objc2-foundation/gnustep-2-1", "objc2-core-data?/gnustep-2-1", "objc2-quartz-core?/gnustep-2-1"] bitflags = ["dep:bitflags", "objc2-core-data?/bitflags", "objc2-foundation/bitflags", "objc2-quartz-core?/bitflags"] -block2 = ["dep:block2", "objc2-core-data?/block2", "objc2-core-image?/block2", "objc2-foundation/block2", "objc2-quartz-core?/block2"] +block2 = ["dep:block2", "objc2-core-data?/block2", "objc2-core-image?/block2", "objc2-foundation/block2", "objc2-quartz-core?/block2", "objc2-uniform-type-identifiers?/block2"] libc = ["dep:libc", "objc2-foundation/libc"] objc2-core-data = ["dep:objc2-core-data"] objc2-core-image = ["dep:objc2-core-image"] objc2-quartz-core = ["dep:objc2-quartz-core"] +objc2-uniform-type-identifiers = ["dep:objc2-uniform-type-identifiers"] AppKitDefines = [] AppKitErrors = [] @@ -103,6 +105,15 @@ NSActionCell = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +NSAdaptiveImageGlyph = [ + "objc2-foundation/NSAttributedString", + "objc2-foundation/NSCoder", + "objc2-foundation/NSData", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-uniform-type-identifiers?/UTType", +] NSAffineTransform = ["objc2-foundation/NSAffineTransform"] NSAlert = [ "objc2-foundation/NSArray", @@ -410,6 +421,7 @@ NSController = [ "objc2-foundation/NSObject", ] NSCursor = [ + "bitflags", "objc2-foundation/NSCoder", "objc2-foundation/NSGeometry", "objc2-foundation/NSObject", @@ -462,6 +474,7 @@ NSDiffableDataSource = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +NSDirection = ["bitflags"] NSDockTile = [ "objc2-foundation/NSGeometry", "objc2-foundation/NSString", @@ -1119,6 +1132,7 @@ NSSavePanel = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", "objc2-foundation/NSURL", + "objc2-uniform-type-identifiers?/UTType", ] NSScreen = [ "objc2-foundation/NSArray", @@ -1205,6 +1219,11 @@ NSShadow = [ "objc2-foundation/NSGeometry", "objc2-foundation/NSObject", ] +NSSharingCollaborationModeRestriction = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", +] NSSharingService = [ "bitflags", "objc2-foundation/NSArray", @@ -1449,6 +1468,7 @@ NSTextAttachmentCell = [ "objc2-foundation/NSString", ] NSTextCheckingClient = [ + "bitflags", "objc2-foundation/NSAttributedString", "objc2-foundation/NSDictionary", "objc2-foundation/NSGeometry", @@ -1841,6 +1861,7 @@ all = [ "NSAccessibilityElement", "NSAccessibilityProtocols", "NSActionCell", + "NSAdaptiveImageGlyph", "NSAffineTransform", "NSAlert", "NSAlignmentFeedbackFilter", @@ -1894,6 +1915,7 @@ all = [ "NSDatePickerCell", "NSDictionaryController", "NSDiffableDataSource", + "NSDirection", "NSDockTile", "NSDocument", "NSDocumentController", @@ -2010,6 +2032,7 @@ all = [ "NSSegmentedCell", "NSSegmentedControl", "NSShadow", + "NSSharingCollaborationModeRestriction", "NSSharingService", "NSSharingServicePickerToolbarItem", "NSSharingServicePickerTouchBarItem", @@ -2114,6 +2137,7 @@ all = [ "objc2-core-data", "objc2-core-image", "objc2-quartz-core", + "objc2-uniform-type-identifiers", ] [[example]] diff --git a/framework-crates/objc2-app-kit/translation-config.toml b/framework-crates/objc2-app-kit/translation-config.toml index bcbad4097..cc88dcaa0 100644 --- a/framework-crates/objc2-app-kit/translation-config.toml +++ b/framework-crates/objc2-app-kit/translation-config.toml @@ -158,6 +158,9 @@ class.NSItemProvider.methods."registerCloudKitShareWithPreparationHandler:".skip class.NSItemProvider.methods."registerCloudKitShare:container:".skipped = true class.NSGlyphInfo.methods.glyphID.skipped = true +# Needs CoreText +class.NSAdaptiveImageGlyph.skipped-protocols = ["CTAdaptiveImageProviding"] + ### ### Main Thread Overrides ### diff --git a/framework-crates/objc2-authentication-services/Cargo.toml b/framework-crates/objc2-authentication-services/Cargo.toml index e19fe403b..c84e379f9 100644 --- a/framework-crates/objc2-authentication-services/Cargo.toml +++ b/framework-crates/objc2-authentication-services/Cargo.toml @@ -173,6 +173,7 @@ ASAuthorizationProviderExtensionLoginConfiguration = [ "objc2-foundation/NSError", "objc2-foundation/NSString", "objc2-foundation/NSURL", + "objc2-foundation/NSValue", ] ASAuthorizationProviderExtensionLoginManager = [ "objc2-foundation/NSDictionary", @@ -181,7 +182,9 @@ ASAuthorizationProviderExtensionLoginManager = [ ] ASAuthorizationProviderExtensionRegistrationHandler = [ "bitflags", + "objc2-foundation/NSArray", "objc2-foundation/NSString", + "objc2-foundation/NSValue", ] ASAuthorizationProviderExtensionUserLoginConfiguration = [ "objc2-foundation/NSDictionary", @@ -206,7 +209,14 @@ ASAuthorizationPublicKeyCredentialDescriptor = [ ASAuthorizationPublicKeyCredentialLargeBlobAssertionInput = ["objc2-foundation/NSData"] ASAuthorizationPublicKeyCredentialLargeBlobAssertionOutput = ["objc2-foundation/NSData"] ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput = [] -ASAuthorizationPublicKeyCredentialLargeBlobRegistrationOutput = [] +ASAuthorizationPublicKeyCredentialLargeBlobRegistrationOutput = ["objc2-foundation/NSObject"] +ASAuthorizationPublicKeyCredentialPRFAssertionInput = [ + "objc2-foundation/NSData", + "objc2-foundation/NSDictionary", +] +ASAuthorizationPublicKeyCredentialPRFAssertionOutput = ["objc2-foundation/NSData"] +ASAuthorizationPublicKeyCredentialPRFRegistrationInput = [] +ASAuthorizationPublicKeyCredentialPRFRegistrationOutput = [] ASAuthorizationPublicKeyCredentialParameters = ["objc2-foundation/NSObject"] ASAuthorizationPublicKeyCredentialRegistration = [ "objc2-foundation/NSData", @@ -316,11 +326,22 @@ ASExtensionErrors = [ "objc2-foundation/NSString", ] ASFoundation = [] +ASOneTimeCodeCredential = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +ASOneTimeCodeCredentialIdentity = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +ASOneTimeCodeCredentialRequest = ["objc2-foundation/NSObject"] ASPasskeyAssertionCredential = [ "objc2-foundation/NSData", "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +ASPasskeyAssertionCredentialExtensionInput = ["objc2-foundation/NSObject"] +ASPasskeyAssertionCredentialExtensionOutput = ["objc2-foundation/NSObject"] ASPasskeyCredentialIdentity = [ "objc2-foundation/NSData", "objc2-foundation/NSObject", @@ -344,6 +365,8 @@ ASPasskeyRegistrationCredential = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +ASPasskeyRegistrationCredentialExtensionInput = ["objc2-foundation/NSObject"] +ASPasskeyRegistrationCredentialExtensionOutput = ["objc2-foundation/NSObject"] ASPasswordCredential = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", @@ -424,6 +447,10 @@ all = [ "ASAuthorizationPublicKeyCredentialLargeBlobAssertionOutput", "ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput", "ASAuthorizationPublicKeyCredentialLargeBlobRegistrationOutput", + "ASAuthorizationPublicKeyCredentialPRFAssertionInput", + "ASAuthorizationPublicKeyCredentialPRFAssertionOutput", + "ASAuthorizationPublicKeyCredentialPRFRegistrationInput", + "ASAuthorizationPublicKeyCredentialPRFRegistrationOutput", "ASAuthorizationPublicKeyCredentialParameters", "ASAuthorizationPublicKeyCredentialRegistration", "ASAuthorizationPublicKeyCredentialRegistrationRequest", @@ -456,11 +483,18 @@ all = [ "ASCredentialServiceIdentifier", "ASExtensionErrors", "ASFoundation", + "ASOneTimeCodeCredential", + "ASOneTimeCodeCredentialIdentity", + "ASOneTimeCodeCredentialRequest", "ASPasskeyAssertionCredential", + "ASPasskeyAssertionCredentialExtensionInput", + "ASPasskeyAssertionCredentialExtensionOutput", "ASPasskeyCredentialIdentity", "ASPasskeyCredentialRequest", "ASPasskeyCredentialRequestParameters", "ASPasskeyRegistrationCredential", + "ASPasskeyRegistrationCredentialExtensionInput", + "ASPasskeyRegistrationCredentialExtensionOutput", "ASPasswordCredential", "ASPasswordCredentialIdentity", "ASPasswordCredentialRequest", diff --git a/framework-crates/objc2-authentication-services/translation-config.toml b/framework-crates/objc2-authentication-services/translation-config.toml index 0a12cdb0e..8129e310a 100644 --- a/framework-crates/objc2-authentication-services/translation-config.toml +++ b/framework-crates/objc2-authentication-services/translation-config.toml @@ -25,9 +25,13 @@ class.ASAuthorizationAppleIDButton.definition-skipped = true # Needs `SecKeyRef`, `SecCertificateRef` and `SecIdentityRef` from Security class.ASAuthorizationProviderExtensionLoginConfiguration.methods.loginRequestEncryptionPublicKey.skipped = true class.ASAuthorizationProviderExtensionLoginConfiguration.methods."setLoginRequestEncryptionPublicKey:".skipped = true +class.ASAuthorizationProviderExtensionLoginConfiguration.methods.hpkeAuthPublicKey.skipped = true +class.ASAuthorizationProviderExtensionLoginConfiguration.methods."setHpkeAuthPublicKey:".skipped = true class.ASAuthorizationProviderExtensionLoginManager.methods."saveCertificate:keyType:".skipped = true class.ASAuthorizationProviderExtensionLoginManager.methods."copyKeyForKeyType:".skipped = true class.ASAuthorizationProviderExtensionLoginManager.methods."copyIdentityForKeyType:".skipped = true +class.ASAuthorizationProviderExtensionLoginManager.methods."beginKeyRotationForKeyType:".skipped = true +protocol.ASAuthorizationProviderExtensionRegistrationHandler.methods."keyWillRotateForKeyType:newKey:loginManager:completion:".skipped = true # Uses LocalAuthentication framework protocol.ASAuthorizationWebBrowserExternallyAuthenticatableRequest.methods.authenticatedContext.skipped = true diff --git a/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml b/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml index ea3c3aab3..124923c2a 100644 --- a/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml +++ b/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml @@ -47,7 +47,11 @@ AEAssessmentConfiguration = [ "objc2-foundation/NSDictionary", "objc2-foundation/NSObject", ] -AEAssessmentParticipantConfiguration = ["objc2-foundation/NSObject"] +AEAssessmentParticipantConfiguration = [ + "objc2-foundation/NSDictionary", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] AEAssessmentSession = [] AEAssessmentSessionDelegate = ["objc2-foundation/NSError"] AEErrors = [ diff --git a/framework-crates/objc2-background-tasks/Cargo.toml b/framework-crates/objc2-background-tasks/Cargo.toml index 416853905..c60b2b758 100644 --- a/framework-crates/objc2-background-tasks/Cargo.toml +++ b/framework-crates/objc2-background-tasks/Cargo.toml @@ -39,7 +39,10 @@ alloc = ["block2?/alloc", "objc2/alloc", "objc2-foundation/alloc"] block2 = ["dep:block2", "objc2-foundation/block2"] BGDefines = [] -BGTask = ["objc2-foundation/NSString"] +BGTask = [ + "objc2-foundation/NSProgress", + "objc2-foundation/NSString", +] BGTaskRequest = [ "objc2-foundation/NSDate", "objc2-foundation/NSFileManager", diff --git a/framework-crates/objc2-cloud-kit/Cargo.toml b/framework-crates/objc2-cloud-kit/Cargo.toml index 53ca019b0..c31d9ce0a 100644 --- a/framework-crates/objc2-cloud-kit/Cargo.toml +++ b/framework-crates/objc2-cloud-kit/Cargo.toml @@ -84,10 +84,7 @@ CKFetchDatabaseChangesOperation = [ "objc2-foundation/NSError", "objc2-foundation/NSOperation", ] -CKFetchNotificationChangesOperation = [ - "objc2-foundation/NSError", - "objc2-foundation/NSOperation", -] +CKFetchNotificationChangesOperation = ["objc2-foundation/NSOperation"] CKFetchRecordChangesOperation = [ "objc2-foundation/NSArray", "objc2-foundation/NSData", @@ -149,15 +146,8 @@ CKLocationSortDescriptor = [ "objc2-foundation/NSSortDescriptor", "objc2-foundation/NSString", ] -CKMarkNotificationsReadOperation = [ - "objc2-foundation/NSArray", - "objc2-foundation/NSError", - "objc2-foundation/NSOperation", -] -CKModifyBadgeOperation = [ - "objc2-foundation/NSError", - "objc2-foundation/NSOperation", -] +CKMarkNotificationsReadOperation = ["objc2-foundation/NSOperation"] +CKModifyBadgeOperation = ["objc2-foundation/NSOperation"] CKModifyRecordZonesOperation = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", @@ -244,7 +234,10 @@ CKShareMetadata = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] -CKShareParticipant = ["objc2-foundation/NSObject"] +CKShareParticipant = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] CKSubscription = [ "bitflags", "objc2-foundation/NSArray", diff --git a/framework-crates/objc2-core-image/Cargo.toml b/framework-crates/objc2-core-image/Cargo.toml index 13434233e..b276a8c0a 100644 --- a/framework-crates/objc2-core-image/Cargo.toml +++ b/framework-crates/objc2-core-image/Cargo.toml @@ -106,6 +106,7 @@ CIImage = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", "objc2-foundation/NSURL", + "objc2-metal?/MTLAllocation", "objc2-metal?/MTLResource", "objc2-metal?/MTLTexture", ] @@ -116,6 +117,7 @@ CIImageProcessor = [ "objc2-foundation/NSError", "objc2-foundation/NSGeometry", "objc2-foundation/NSString", + "objc2-metal?/MTLAllocation", "objc2-metal?/MTLCommandBuffer", "objc2-metal?/MTLResource", "objc2-metal?/MTLTexture", @@ -151,6 +153,7 @@ CIRenderDestination = [ "objc2-foundation/NSDate", "objc2-foundation/NSError", "objc2-foundation/NSGeometry", + "objc2-metal?/MTLAllocation", "objc2-metal?/MTLCommandBuffer", "objc2-metal?/MTLPixelFormat", "objc2-metal?/MTLResource", diff --git a/framework-crates/objc2-core-location/Cargo.toml b/framework-crates/objc2-core-location/Cargo.toml index 1d8b4c419..004c329d7 100644 --- a/framework-crates/objc2-core-location/Cargo.toml +++ b/framework-crates/objc2-core-location/Cargo.toml @@ -132,6 +132,7 @@ CLRegion = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +CLServiceSession = ["objc2-foundation/NSString"] CLVisit = [ "objc2-foundation/NSDate", "objc2-foundation/NSObject", @@ -162,6 +163,7 @@ all = [ "CLMonitoringRecord", "CLPlacemark", "CLRegion", + "CLServiceSession", "CLVisit", "block2", "objc2-contacts", diff --git a/framework-crates/objc2-core-location/translation-config.toml b/framework-crates/objc2-core-location/translation-config.toml index a5eda51b2..ef7cb8d15 100644 --- a/framework-crates/objc2-core-location/translation-config.toml +++ b/framework-crates/objc2-core-location/translation-config.toml @@ -18,3 +18,6 @@ class.CLLocationUpdater.methods."liveUpdaterWithQueue:handler:".skipped = true class.CLLocationUpdater.methods."liveUpdaterWithConfiguration:queue:handler:".skipped = true class.CLMonitorConfiguration.methods.queue.skipped = true class.CLMonitorConfiguration.methods."configWithMonitorName:queue:eventHandler:".skipped = true +class.CLBackgroundActivitySession.methods."backgroundActivitySessionWithQueue:handler:".skipped = true +class.CLServiceSession.methods."sessionRequiringAuthorization:queue:handler:".skipped = true +class.CLServiceSession.methods."sessionRequiringAuthorization:fullAccuracyPurposeKey:queue:handler:".skipped = true diff --git a/framework-crates/objc2-core-ml/Cargo.toml b/framework-crates/objc2-core-ml/Cargo.toml index e0ed8609c..3c20c7966 100644 --- a/framework-crates/objc2-core-ml/Cargo.toml +++ b/framework-crates/objc2-core-ml/Cargo.toml @@ -69,6 +69,7 @@ MLCustomLayer = [ "objc2-foundation/NSError", "objc2-foundation/NSString", "objc2-foundation/NSValue", + "objc2-metal?/MTLAllocation", "objc2-metal?/MTLCommandBuffer", "objc2-metal?/MTLResource", "objc2-metal?/MTLTexture", @@ -128,8 +129,11 @@ MLModel = [ "objc2-foundation/NSURL", ] MLModelAsset = [ + "objc2-foundation/NSArray", "objc2-foundation/NSData", "objc2-foundation/NSError", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", ] MLModelCollection = [ "objc2-foundation/NSDictionary", @@ -193,6 +197,7 @@ MLModel_MLModelCompilation = [ "objc2-foundation/NSError", "objc2-foundation/NSURL", ] +MLModel_MLState = ["objc2-foundation/NSError"] MLMultiArray = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", @@ -237,6 +242,12 @@ MLSequenceConstraint = [ "objc2-foundation/NSObject", "objc2-foundation/NSRange", ] +MLState = ["objc2-foundation/NSString"] +MLStateConstraint = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", + "objc2-foundation/NSValue", +] MLTask = [ "objc2-foundation/NSError", "objc2-foundation/NSString", @@ -302,6 +313,7 @@ all = [ "MLModelStructureProgramValueType", "MLModel_MLComputeDevice", "MLModel_MLModelCompilation", + "MLModel_MLState", "MLMultiArray", "MLMultiArrayConstraint", "MLMultiArrayShapeConstraint", @@ -315,6 +327,8 @@ all = [ "MLReshapeFrequencyHint", "MLSequence", "MLSequenceConstraint", + "MLState", + "MLStateConstraint", "MLTask", "MLUpdateContext", "MLUpdateProgressEvent", diff --git a/framework-crates/objc2-core-motion/Cargo.toml b/framework-crates/objc2-core-motion/Cargo.toml index a9a3b9df1..84b8e11d9 100644 --- a/framework-crates/objc2-core-motion/Cargo.toml +++ b/framework-crates/objc2-core-motion/Cargo.toml @@ -74,6 +74,10 @@ CMErrorDomain = ["objc2-foundation/NSString"] CMFallDetectionEvent = ["objc2-foundation/NSDate"] CMFallDetectionManager = [] CMGyro = ["objc2-foundation/NSObject"] +CMHeadphoneActivityManager = [ + "objc2-foundation/NSError", + "objc2-foundation/NSOperation", +] CMHeadphoneMotionManager = [ "objc2-foundation/NSError", "objc2-foundation/NSOperation", @@ -170,6 +174,7 @@ all = [ "CMFallDetectionEvent", "CMFallDetectionManager", "CMGyro", + "CMHeadphoneActivityManager", "CMHeadphoneMotionManager", "CMHeadphoneMotionManagerDelegate", "CMHighFrequencyHeartRateData", diff --git a/framework-crates/objc2-file-provider/Cargo.toml b/framework-crates/objc2-file-provider/Cargo.toml index c537264f3..9766dbdd0 100644 --- a/framework-crates/objc2-file-provider/Cargo.toml +++ b/framework-crates/objc2-file-provider/Cargo.toml @@ -53,10 +53,13 @@ NSFileProviderDefines = [] NSFileProviderDomain = [ "bitflags", "objc2-foundation/NSData", + "objc2-foundation/NSDictionary", "objc2-foundation/NSNotification", "objc2-foundation/NSObjCRuntime", "objc2-foundation/NSObject", "objc2-foundation/NSString", + "objc2-foundation/NSURL", + "objc2-foundation/NSUUID", ] NSFileProviderEnumerating = [ "objc2-foundation/NSArray", @@ -89,6 +92,10 @@ NSFileProviderItemDecoration = [ "objc2-foundation/NSArray", "objc2-foundation/NSString", ] +NSFileProviderKnownFolders = [ + "objc2-foundation/NSError", + "objc2-foundation/NSString", +] NSFileProviderManager = [ "bitflags", "objc2-foundation/NSArray", @@ -145,6 +152,7 @@ all = [ "NSFileProviderExtension", "NSFileProviderItem", "NSFileProviderItemDecoration", + "NSFileProviderKnownFolders", "NSFileProviderManager", "NSFileProviderModifyItemOptions", "NSFileProviderReplicatedExtension", diff --git a/framework-crates/objc2-foundation/Cargo.toml b/framework-crates/objc2-foundation/Cargo.toml index b319789d4..8a5697b25 100644 --- a/framework-crates/objc2-foundation/Cargo.toml +++ b/framework-crates/objc2-foundation/Cargo.toml @@ -121,11 +121,13 @@ NSItemProvider = ["bitflags"] NSJSONSerialization = ["bitflags"] NSKeyValueCoding = [] NSKeyValueObserving = ["bitflags"] +NSKeyValueSharedObservers = [] NSKeyedArchiver = [] NSLengthFormatter = [] NSLinguisticTagger = ["bitflags"] NSListFormatter = [] NSLocale = [] +NSLocalizedNumberFormatRule = [] NSLock = [] NSMapTable = [] NSMassFormatter = [] @@ -289,11 +291,13 @@ all = [ "NSJSONSerialization", "NSKeyValueCoding", "NSKeyValueObserving", + "NSKeyValueSharedObservers", "NSKeyedArchiver", "NSLengthFormatter", "NSLinguisticTagger", "NSListFormatter", "NSLocale", + "NSLocalizedNumberFormatRule", "NSLock", "NSMapTable", "NSMassFormatter", diff --git a/framework-crates/objc2-game-kit/Cargo.toml b/framework-crates/objc2-game-kit/Cargo.toml index ed0dcda9e..07657b178 100644 --- a/framework-crates/objc2-game-kit/Cargo.toml +++ b/framework-crates/objc2-game-kit/Cargo.toml @@ -48,6 +48,7 @@ GKAccessPoint = [ "objc2-app-kit?/NSResponder", "objc2-app-kit?/NSWindow", "objc2-foundation/NSGeometry", + "objc2-foundation/NSString", ] GKAchievement = [ "objc2-foundation/NSArray", diff --git a/framework-crates/objc2-health-kit/Cargo.toml b/framework-crates/objc2-health-kit/Cargo.toml index 55e0ec317..7d3734dbd 100644 --- a/framework-crates/objc2-health-kit/Cargo.toml +++ b/framework-crates/objc2-health-kit/Cargo.toml @@ -83,10 +83,13 @@ HKAudiogramSample = [ "objc2-foundation/NSArray", "objc2-foundation/NSDate", "objc2-foundation/NSDictionary", - "objc2-foundation/NSError", "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +HKAudiogramSensitivityPoint = [ + "objc2-foundation/NSError", + "objc2-foundation/NSObject", +] HKCDADocumentSample = [ "objc2-foundation/NSData", "objc2-foundation/NSDate", @@ -194,6 +197,14 @@ HKFHIRVersion = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +HKGAD7Assessment = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSDate", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSValue", +] HKGlassesLensSpecification = ["objc2-foundation/NSObject"] HKGlassesPrescription = [ "objc2-foundation/NSDate", @@ -249,6 +260,14 @@ HKObserverQuery = [ "objc2-foundation/NSPredicate", "objc2-foundation/NSSet", ] +HKPHQ9Assessment = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSDate", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSValue", +] HKQuantity = [ "objc2-foundation/NSObjCRuntime", "objc2-foundation/NSObject", @@ -303,6 +322,7 @@ HKSampleQuery = [ "objc2-foundation/NSPredicate", "objc2-foundation/NSSortDescriptor", ] +HKScoredAssessment = ["objc2-foundation/NSObject"] HKSeriesBuilder = [] HKSeriesSample = ["objc2-foundation/NSObject"] HKSource = [ @@ -319,6 +339,14 @@ HKSourceRevision = [ "objc2-foundation/NSProcessInfo", "objc2-foundation/NSString", ] +HKStateOfMind = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSDate", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSValue", +] HKStatistics = [ "bitflags", "objc2-foundation/NSArray", @@ -396,6 +424,12 @@ HKWorkoutBuilder = [ "objc2-foundation/NSUUID", ] HKWorkoutConfiguration = ["objc2-foundation/NSObject"] +HKWorkoutEffortRelationshipQuery = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSError", + "objc2-foundation/NSObject", + "objc2-foundation/NSPredicate", +] HKWorkoutRoute = ["objc2-foundation/NSObject"] HKWorkoutRouteBuilder = [ "objc2-core-location?/CLLocation", @@ -427,6 +461,7 @@ all = [ "HKAttachment", "HKAttachmentStore", "HKAudiogramSample", + "HKAudiogramSensitivityPoint", "HKCDADocumentSample", "HKCategorySample", "HKCategoryValues", @@ -451,6 +486,7 @@ all = [ "HKFHIRRelease", "HKFHIRResource", "HKFHIRVersion", + "HKGAD7Assessment", "HKGlassesLensSpecification", "HKGlassesPrescription", "HKHealthStore", @@ -464,6 +500,7 @@ all = [ "HKObject", "HKObjectType", "HKObserverQuery", + "HKPHQ9Assessment", "HKQuantity", "HKQuantityAggregationStyle", "HKQuantitySample", @@ -474,11 +511,13 @@ all = [ "HKQueryDescriptor", "HKSample", "HKSampleQuery", + "HKScoredAssessment", "HKSeriesBuilder", "HKSeriesSample", "HKSource", "HKSourceQuery", "HKSourceRevision", + "HKStateOfMind", "HKStatistics", "HKStatisticsCollectionQuery", "HKStatisticsQuery", @@ -493,6 +532,7 @@ all = [ "HKWorkoutActivity", "HKWorkoutBuilder", "HKWorkoutConfiguration", + "HKWorkoutEffortRelationshipQuery", "HKWorkoutRoute", "HKWorkoutRouteBuilder", "HKWorkoutRouteQuery", diff --git a/framework-crates/objc2-local-authentication/Cargo.toml b/framework-crates/objc2-local-authentication/Cargo.toml index a76afacd7..e648001c4 100644 --- a/framework-crates/objc2-local-authentication/Cargo.toml +++ b/framework-crates/objc2-local-authentication/Cargo.toml @@ -40,6 +40,8 @@ alloc = ["block2?/alloc", "objc2/alloc", "objc2-foundation/alloc"] block2 = ["dep:block2", "objc2-foundation/block2"] LABase = [] +LABiometryType = [] +LACompanionType = [] LAContext = [ "objc2-foundation/NSData", "objc2-foundation/NSDate", @@ -47,6 +49,20 @@ LAContext = [ "objc2-foundation/NSString", "objc2-foundation/NSValue", ] +LADomainState = [ + "objc2-foundation/NSData", + "objc2-foundation/NSSet", + "objc2-foundation/NSValue", +] +LAEnvironment = [] +LAEnvironmentMechanism = ["objc2-foundation/NSString"] +LAEnvironmentMechanismBiometry = ["objc2-foundation/NSData"] +LAEnvironmentMechanismCompanion = ["objc2-foundation/NSData"] +LAEnvironmentMechanismUserPassword = [] +LAEnvironmentState = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] LAError = ["objc2-foundation/NSString"] LAPersistedRight = [] LAPrivateKey = [] @@ -71,7 +87,16 @@ LASecret = [ ] all = [ "LABase", + "LABiometryType", + "LACompanionType", "LAContext", + "LADomainState", + "LAEnvironment", + "LAEnvironmentMechanism", + "LAEnvironmentMechanismBiometry", + "LAEnvironmentMechanismCompanion", + "LAEnvironmentMechanismUserPassword", + "LAEnvironmentState", "LAError", "LAPersistedRight", "LAPrivateKey", diff --git a/framework-crates/objc2-map-kit/Cargo.toml b/framework-crates/objc2-map-kit/Cargo.toml index 79894305a..aa1cb1ee7 100644 --- a/framework-crates/objc2-map-kit/Cargo.toml +++ b/framework-crates/objc2-map-kit/Cargo.toml @@ -52,6 +52,10 @@ objc2-app-kit = ["dep:objc2-app-kit"] objc2-contacts = ["dep:objc2-contacts", "objc2-core-location?/objc2-contacts"] objc2-core-location = ["dep:objc2-core-location"] +MKAddressFilter = [ + "bitflags", + "objc2-foundation/NSObject", +] MKAnnotation = [ "objc2-core-location?/CLLocation", "objc2-foundation/NSString", @@ -189,10 +193,29 @@ MKMapItem = [ "objc2-foundation/NSArray", "objc2-foundation/NSDictionary", "objc2-foundation/NSObject", + "objc2-foundation/NSSet", "objc2-foundation/NSString", "objc2-foundation/NSTimeZone", "objc2-foundation/NSURL", ] +MKMapItemAnnotation = [] +MKMapItemDetailViewController = [ + "objc2-app-kit?/NSKeyValueBinding", + "objc2-app-kit?/NSNib", + "objc2-app-kit?/NSResponder", + "objc2-app-kit?/NSStoryboardSegue", + "objc2-app-kit?/NSUserInterfaceItemIdentification", + "objc2-app-kit?/NSViewController", + "objc2-foundation/NSBundle", + "objc2-foundation/NSCoder", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +MKMapItemIdentifier = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +MKMapItemRequest = ["objc2-foundation/NSError"] MKMapSnapshot = [ "objc2-app-kit?/NSAppearance", "objc2-app-kit?/NSImage", @@ -309,6 +332,10 @@ MKPolygon = [ MKPolygonRenderer = ["objc2-foundation/NSGeometry"] MKPolyline = ["objc2-core-location?/CLLocation"] MKPolylineRenderer = ["objc2-foundation/NSGeometry"] +MKSelectionAccessory = [ + "objc2-app-kit?/NSResponder", + "objc2-app-kit?/NSViewController", +] MKShape = ["objc2-foundation/NSString"] MKStandardMapConfiguration = ["objc2-foundation/NSObject"] MKTileOverlay = [ @@ -352,6 +379,7 @@ MKZoomControl = [ ] NSUserActivity_MKMapItem = ["objc2-foundation/NSUserActivity"] all = [ + "MKAddressFilter", "MKAnnotation", "MKAnnotationView", "MKCircle", @@ -386,6 +414,10 @@ all = [ "MKMapCameraZoomRange", "MKMapConfiguration", "MKMapItem", + "MKMapItemAnnotation", + "MKMapItemDetailViewController", + "MKMapItemIdentifier", + "MKMapItemRequest", "MKMapSnapshot", "MKMapSnapshotOptions", "MKMapSnapshotter", @@ -409,6 +441,7 @@ all = [ "MKPolygonRenderer", "MKPolyline", "MKPolylineRenderer", + "MKSelectionAccessory", "MKShape", "MKStandardMapConfiguration", "MKTileOverlay", diff --git a/framework-crates/objc2-map-kit/translation-config.toml b/framework-crates/objc2-map-kit/translation-config.toml index aedd11d42..109afe41b 100644 --- a/framework-crates/objc2-map-kit/translation-config.toml +++ b/framework-crates/objc2-map-kit/translation-config.toml @@ -41,3 +41,8 @@ class.MKOverlayPathRenderer.methods."applyFillPropertiesToContext:atZoomScale:". # Needs `CGPathRef` and `CGContextRef` class.MKOverlayPathRenderer.methods."strokePath:inContext:".skipped = true class.MKOverlayPathRenderer.methods."fillPath:inContext:".skipped = true + +# Needs proper support for iOS +class.MKMapItemRequest.methods."initWithMapFeatureAnnotation:".skipped = true +class.MKMapItemRequest.methods.mapFeatureAnnotation.skipped = true +class.MKMapItemRequest.methods.featureAnnotation.skipped = true diff --git a/framework-crates/objc2-metal-fx/Cargo.toml b/framework-crates/objc2-metal-fx/Cargo.toml index 41e09899e..b05e3ca74 100644 --- a/framework-crates/objc2-metal-fx/Cargo.toml +++ b/framework-crates/objc2-metal-fx/Cargo.toml @@ -40,6 +40,7 @@ alloc = ["objc2/alloc", "objc2-foundation/alloc", "objc2-metal/alloc"] MTLFXDefines = [] MTLFXSpatialScaler = [ "objc2-foundation/NSObject", + "objc2-metal/MTLAllocation", "objc2-metal/MTLCommandBuffer", "objc2-metal/MTLDevice", "objc2-metal/MTLFence", @@ -49,6 +50,7 @@ MTLFXSpatialScaler = [ ] MTLFXTemporalScaler = [ "objc2-foundation/NSObject", + "objc2-metal/MTLAllocation", "objc2-metal/MTLCommandBuffer", "objc2-metal/MTLDevice", "objc2-metal/MTLFence", diff --git a/framework-crates/objc2-metal-kit/Cargo.toml b/framework-crates/objc2-metal-kit/Cargo.toml index 85e015f6c..bfa45fd1b 100644 --- a/framework-crates/objc2-metal-kit/Cargo.toml +++ b/framework-crates/objc2-metal-kit/Cargo.toml @@ -51,6 +51,7 @@ MTKModel = [ "objc2-foundation/NSArray", "objc2-foundation/NSObject", "objc2-foundation/NSString", + "objc2-metal/MTLAllocation", "objc2-metal/MTLBuffer", "objc2-metal/MTLDevice", "objc2-metal/MTLRenderCommandEncoder", @@ -67,6 +68,7 @@ MTKTextureLoader = [ "objc2-foundation/NSGeometry", "objc2-foundation/NSString", "objc2-foundation/NSURL", + "objc2-metal/MTLAllocation", "objc2-metal/MTLDevice", "objc2-metal/MTLResource", "objc2-metal/MTLTexture", @@ -82,6 +84,7 @@ MTKView = [ "objc2-foundation/NSCoder", "objc2-foundation/NSGeometry", "objc2-foundation/NSObject", + "objc2-metal/MTLAllocation", "objc2-metal/MTLDevice", "objc2-metal/MTLDrawable", "objc2-metal/MTLPixelFormat", diff --git a/framework-crates/objc2-metal/Cargo.modified.toml b/framework-crates/objc2-metal/Cargo.modified.toml index 5f2ce0950..8454798b0 100644 --- a/framework-crates/objc2-metal/Cargo.modified.toml +++ b/framework-crates/objc2-metal/Cargo.modified.toml @@ -16,6 +16,7 @@ required-features = [ "objc2-foundation/NSNotification", "objc2-foundation/NSThread", "objc2-foundation/NSGeometry", + "MTLAllocation", "MTLAccelerationStructureTypes", "MTLLibrary", "MTLRenderPipeline", diff --git a/framework-crates/objc2-metal/Cargo.toml b/framework-crates/objc2-metal/Cargo.toml index 71df66fd9..ac6bfe8ab 100644 --- a/framework-crates/objc2-metal/Cargo.toml +++ b/framework-crates/objc2-metal/Cargo.toml @@ -56,6 +56,7 @@ MTLAccelerationStructureCommandEncoder = [ "objc2-foundation/NSObject", ] MTLAccelerationStructureTypes = [] +MTLAllocation = [] MTLArgument = [ "objc2-foundation/NSArray", "objc2-foundation/NSString", @@ -98,7 +99,10 @@ MTLCommandEncoder = [ "bitflags", "objc2-foundation/NSString", ] -MTLCommandQueue = ["objc2-foundation/NSString"] +MTLCommandQueue = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] MTLComputeCommandEncoder = ["objc2-foundation/NSRange"] MTLComputePass = ["objc2-foundation/NSObject"] MTLComputePipeline = [ @@ -129,6 +133,11 @@ MTLDevice = [ "objc2-foundation/NSString", "objc2-foundation/NSURL", ] +MTLDeviceCertification = [ + "objc2-foundation/NSNotification", + "objc2-foundation/NSProcessInfo", + "objc2-foundation/NSString", +] MTLDrawable = [] MTLDynamicLibrary = [ "objc2-foundation/NSError", @@ -158,6 +167,7 @@ MTLFunctionLog = [ "objc2-foundation/NSURL", ] MTLFunctionStitching = [ + "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSObject", "objc2-foundation/NSString", @@ -200,6 +210,11 @@ MTLLinkedFunctions = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +MTLLogState = [ + "objc2-foundation/NSError", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] MTLParallelRenderCommandEncoder = [] MTLPipeline = ["objc2-foundation/NSObject"] MTLPixelFormat = [] @@ -223,6 +238,11 @@ MTLRenderPipeline = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +MTLResidencySet = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] MTLResource = [ "bitflags", "objc2-foundation/NSString", @@ -250,6 +270,7 @@ all = [ "MTLAccelerationStructure", "MTLAccelerationStructureCommandEncoder", "MTLAccelerationStructureTypes", + "MTLAllocation", "MTLArgument", "MTLArgumentEncoder", "MTLBinaryArchive", @@ -268,6 +289,7 @@ all = [ "MTLDefines", "MTLDepthStencil", "MTLDevice", + "MTLDeviceCertification", "MTLDrawable", "MTLDynamicLibrary", "MTLEvent", @@ -286,6 +308,7 @@ all = [ "MTLIntersectionFunctionTable", "MTLLibrary", "MTLLinkedFunctions", + "MTLLogState", "MTLParallelRenderCommandEncoder", "MTLPipeline", "MTLPixelFormat", @@ -293,6 +316,7 @@ all = [ "MTLRenderCommandEncoder", "MTLRenderPass", "MTLRenderPipeline", + "MTLResidencySet", "MTLResource", "MTLResourceStateCommandEncoder", "MTLResourceStatePass", @@ -321,6 +345,7 @@ required-features = [ "objc2-foundation/NSNotification", "objc2-foundation/NSThread", "objc2-foundation/NSGeometry", + "MTLAllocation", "MTLAccelerationStructureTypes", "MTLLibrary", "MTLRenderPipeline", diff --git a/framework-crates/objc2-network-extension/Cargo.toml b/framework-crates/objc2-network-extension/Cargo.toml index b91a4ad10..45a5818c8 100644 --- a/framework-crates/objc2-network-extension/Cargo.toml +++ b/framework-crates/objc2-network-extension/Cargo.toml @@ -226,6 +226,7 @@ NERelay = [ ] NERelayManager = [ "objc2-foundation/NSArray", + "objc2-foundation/NSDate", "objc2-foundation/NSError", "objc2-foundation/NSString", ] @@ -282,6 +283,7 @@ NEVPNProtocol = [ "objc2-foundation/NSString", ] NEVPNProtocolIKEv2 = [ + "objc2-foundation/NSData", "objc2-foundation/NSObject", "objc2-foundation/NSString", ] diff --git a/framework-crates/objc2-network-extension/translation-config.toml b/framework-crates/objc2-network-extension/translation-config.toml index 8e25dc139..b16a97ff0 100644 --- a/framework-crates/objc2-network-extension/translation-config.toml +++ b/framework-crates/objc2-network-extension/translation-config.toml @@ -17,9 +17,26 @@ static.NEFilterProviderRemediationMapRemediationButtonTexts.skipped = true class.NEAppProxyFlow.methods."setMetadata:".skipped = true class.NEAppProxyFlow.methods.networkInterface.skipped = true class.NEAppProxyFlow.methods."setNetworkInterface:".skipped = true +class.NEAppProxyFlow.methods."openWithLocalFlowEndpoint:completionHandler:".skipped = true +class.NEAppProxyProvider.methods."handleNewUDPFlow:initialRemoteFlowEndpoint:".skipped = true +class.NEAppProxyTCPFlow.methods.remoteFlowEndpoint.skipped = true +typedef.NWEndpointArray.skipped = true +class.NEAppProxyUDPFlow.methods.localFlowEndpoint.skipped = true +class.NEAppProxyUDPFlow.methods."readDatagramsAndFlowEndpointsWithCompletionHandler:".skipped = true +class.NEAppProxyUDPFlow.methods."writeDatagrams:sentByFlowEndpoints:completionHandler:".skipped = true +class.NEDNSProxyProvider.methods."handleNewUDPFlow:initialRemoteFlowEndpoint:".skipped = true typedef.NEFilterPacketHandler.skipped = true class.NEFilterPacketProvider.methods.packetHandler.skipped = true class.NEFilterPacketProvider.methods."setPacketHandler:".skipped = true +class.NEFilterSocketFlow.methods.remoteFlowEndpoint.skipped = true +class.NEFilterSocketFlow.methods.localFlowEndpoint.skipped = true +class.NEHotspotHelperCommand.methods.interface.skipped = true +class.NENetworkRule.methods."initWithDestinationNetworkEndpoint:prefix:protocol:".skipped = true +class.NENetworkRule.methods."initWithDestinationHostEndpoint:protocol:".skipped = true +class.NENetworkRule.methods."initWithRemoteNetworkEndpoint:remotePrefix:localNetworkEndpoint:localPrefix:protocol:direction:".skipped = true +class.NENetworkRule.methods.matchRemoteHostOrNetworkEndpoint.skipped = true +class.NENetworkRule.methods.matchLocalNetworkEndpoint.skipped = true +class.NEPacketTunnelProvider.methods.virtualInterface.skipped = true # Needs `dispatch_queue_t` from libdispatch class.NEHotspotHelper.methods."registerWithOptions:queue:handler:".skipped = true @@ -29,3 +46,7 @@ class.NEHotspotEAPSettings.methods."setIdentity:".skipped = true class.NEVPNManager.methods."setAuthorization:".skipped = true protocol.NWTCPConnectionAuthenticationDelegate.methods."provideIdentityForConnection:completionHandler:".skipped = true protocol.NWTCPConnectionAuthenticationDelegate.methods."evaluateTrustForConnection:peerCertificateChain:completionHandler:".skipped = true + +# Needs `ASAccessory` from AccessorySetupKit +class.NEHotspotConfigurationManager.methods."joinAccessoryHotspot:passphrase:completionHandler:".skipped = true +class.NEHotspotConfigurationManager.methods."joinAccessoryHotspotWithoutSecurity:completionHandler:".skipped = true diff --git a/framework-crates/objc2-photos/Cargo.toml b/framework-crates/objc2-photos/Cargo.toml index 5e58e47f6..109d40a53 100644 --- a/framework-crates/objc2-photos/Cargo.toml +++ b/framework-crates/objc2-photos/Cargo.toml @@ -52,7 +52,7 @@ block2 = ["dep:block2", "objc2-app-kit?/block2", "objc2-core-image?/block2", "ob objc2-app-kit = ["dep:objc2-app-kit"] objc2-core-image = ["dep:objc2-core-image", "objc2-app-kit?/objc2-core-image"] objc2-core-location = ["dep:objc2-core-location"] -objc2-uniform-type-identifiers = ["dep:objc2-uniform-type-identifiers"] +objc2-uniform-type-identifiers = ["dep:objc2-uniform-type-identifiers", "objc2-app-kit?/objc2-uniform-type-identifiers"] PHAdjustmentData = [ "objc2-foundation/NSData", diff --git a/framework-crates/objc2-quartz-core/Cargo.toml b/framework-crates/objc2-quartz-core/Cargo.toml index a48d9d517..f1ad78f0d 100644 --- a/framework-crates/objc2-quartz-core/Cargo.toml +++ b/framework-crates/objc2-quartz-core/Cargo.toml @@ -117,6 +117,7 @@ CAMetalLayer = [ "objc2-foundation/NSDictionary", "objc2-foundation/NSGeometry", "objc2-foundation/NSObject", + "objc2-metal?/MTLAllocation", "objc2-metal?/MTLDevice", "objc2-metal?/MTLDrawable", "objc2-metal?/MTLPixelFormat", diff --git a/framework-crates/objc2-screen-capture-kit/Cargo.toml b/framework-crates/objc2-screen-capture-kit/Cargo.toml index 650fd542c..586f721f8 100644 --- a/framework-crates/objc2-screen-capture-kit/Cargo.toml +++ b/framework-crates/objc2-screen-capture-kit/Cargo.toml @@ -48,6 +48,10 @@ SCContentSharingPicker = [ "objc2-foundation/NSValue", ] SCError = ["objc2-foundation/NSString"] +SCRecordingOutput = [ + "objc2-foundation/NSError", + "objc2-foundation/NSURL", +] SCScreenshotManager = [] SCShareableContent = [ "objc2-foundation/NSArray", @@ -64,6 +68,7 @@ SCStream = [ all = [ "SCContentSharingPicker", "SCError", + "SCRecordingOutput", "SCScreenshotManager", "SCShareableContent", "SCStream", diff --git a/framework-crates/objc2-screen-capture-kit/translation-config.toml b/framework-crates/objc2-screen-capture-kit/translation-config.toml index 0bfe031a4..f0c676f27 100644 --- a/framework-crates/objc2-screen-capture-kit/translation-config.toml +++ b/framework-crates/objc2-screen-capture-kit/translation-config.toml @@ -6,7 +6,16 @@ macos = "12.3" # Needs `dispatch_queue_t` class.SCStream.methods."addStreamOutput:type:sampleHandlerQueue:error:".skipped = true +# Needs AVFoundation +class.SCRecordingOutputConfiguration.methods.videoCodecType.skipped = true +class.SCRecordingOutputConfiguration.methods."setVideoCodecType:".skipped = true +class.SCRecordingOutputConfiguration.methods.outputFileType.skipped = true +class.SCRecordingOutputConfiguration.methods."setOutputFileType:".skipped = true +class.SCRecordingOutputConfiguration.methods.availableVideoCodecTypes.skipped = true +class.SCRecordingOutputConfiguration.methods.availableOutputFileTypes.skipped = true + # Needs CoreMedia +class.SCRecordingOutput.methods.recordedDuration.skipped = true class.SCScreenshotManager.methods."captureSampleBufferWithFilter:configuration:completionHandler:".skipped = true class.SCStreamConfiguration.methods.minimumFrameInterval.skipped = true class.SCStreamConfiguration.methods."setMinimumFrameInterval:".skipped = true diff --git a/framework-crates/objc2-speech/Cargo.toml b/framework-crates/objc2-speech/Cargo.toml index 7f979d5a2..01c1ff698 100644 --- a/framework-crates/objc2-speech/Cargo.toml +++ b/framework-crates/objc2-speech/Cargo.toml @@ -38,6 +38,7 @@ std = ["alloc", "block2?/std", "objc2/std", "objc2-foundation/std"] alloc = ["block2?/alloc", "objc2/alloc", "objc2-foundation/alloc"] block2 = ["dep:block2", "objc2-foundation/block2"] +PhoneticEmbedderEnums = [] SFErrors = [ "objc2-foundation/NSError", "objc2-foundation/NSString", @@ -61,7 +62,10 @@ SFSpeechRecognitionResult = [ "objc2-foundation/NSArray", "objc2-foundation/NSObject", ] -SFSpeechRecognitionTask = ["objc2-foundation/NSError"] +SFSpeechRecognitionTask = [ + "objc2-foundation/NSDate", + "objc2-foundation/NSError", +] SFSpeechRecognitionTaskHint = [] SFSpeechRecognizer = [ "objc2-foundation/NSError", @@ -89,6 +93,7 @@ SFVoiceAnalytics = [ "objc2-foundation/NSValue", ] all = [ + "PhoneticEmbedderEnums", "SFErrors", "SFSpeechLanguageModel", "SFSpeechRecognitionMetadata", diff --git a/framework-crates/objc2-ui-kit/Cargo.toml b/framework-crates/objc2-ui-kit/Cargo.toml index 8b1ab09f4..e233bc87d 100644 --- a/framework-crates/objc2-ui-kit/Cargo.toml +++ b/framework-crates/objc2-ui-kit/Cargo.toml @@ -60,6 +60,15 @@ objc2-uniform-type-identifiers = ["dep:objc2-uniform-type-identifiers"] objc2-user-notifications = ["dep:objc2-user-notifications"] DocumentManager = [] +NSAdaptiveImageGlyph = [ + "objc2-foundation/NSAttributedString", + "objc2-foundation/NSCoder", + "objc2-foundation/NSData", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-uniform-type-identifiers?/UTType", +] NSAttributedString = [ "bitflags", "objc2-foundation/NSAttributedString", @@ -300,6 +309,11 @@ UIActivity = [ "objc2-foundation/NSArray", "objc2-foundation/NSString", ] +UIActivityCollaborationModeRestriction = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", +] UIActivityIndicatorView = [ "objc2-foundation/NSCoder", "objc2-foundation/NSGeometry", @@ -323,7 +337,9 @@ UIActivityItemsConfigurationReading = [ "objc2-foundation/NSItemProvider", "objc2-foundation/NSString", ] +UIActivityItemsConfigurationReading_ShareSheet = ["objc2-foundation/NSString"] UIActivityViewController = [ + "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSBundle", "objc2-foundation/NSCoder", @@ -441,6 +457,7 @@ UICalendarSelectionMultiDate = [ "objc2-foundation/NSCalendar", ] UICalendarSelectionSingleDate = ["objc2-foundation/NSCalendar"] +UICalendarSelectionWeekOfYear = ["objc2-foundation/NSCalendar"] UICalendarView = [ "objc2-foundation/NSArray", "objc2-foundation/NSCalendar", @@ -479,6 +496,7 @@ UICloudSharingController = [ "objc2-foundation/NSString", ] UICollectionLayoutList = [ + "bitflags", "objc2-foundation/NSGeometry", "objc2-foundation/NSIndexPath", "objc2-foundation/NSObject", @@ -744,6 +762,7 @@ UIDocumentViewController = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +UIDocumentViewControllerLaunchOptions = ["objc2-foundation/NSString"] UIDragInteraction = [ "objc2-foundation/NSArray", "objc2-foundation/NSGeometry", @@ -1479,6 +1498,7 @@ UISearchSuggestion = [ "objc2-foundation/NSAttributedString", "objc2-foundation/NSString", ] +UISearchTab = ["objc2-foundation/NSString"] UISearchTextField = [ "objc2-foundation/NSArray", "objc2-foundation/NSCoder", @@ -1572,6 +1592,7 @@ UISwitch = [ "objc2-quartz-core?/CALayer", ] UISymbolEffectCompletion = ["objc2-symbols?/NSSymbolEffect"] +UITab = ["objc2-foundation/NSString"] UITabBar = [ "objc2-foundation/NSArray", "objc2-foundation/NSCoder", @@ -1592,8 +1613,10 @@ UITabBarController = [ "objc2-foundation/NSBundle", "objc2-foundation/NSCoder", "objc2-foundation/NSObject", + "objc2-foundation/NSProgress", "objc2-foundation/NSString", ] +UITabBarControllerSidebar = ["objc2-foundation/NSObject"] UITabBarItem = [ "objc2-foundation/NSAttributedString", "objc2-foundation/NSCoder", @@ -1602,7 +1625,16 @@ UITabBarItem = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +UITabGroup = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSString", +] +UITabSidebarItem = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] UITableView = [ + "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSCoder", "objc2-foundation/NSGeometry", @@ -1695,6 +1727,7 @@ UITextInput = [ ] UITextInputContext = [] UITextInputTraits = [ + "bitflags", "objc2-foundation/NSObject", "objc2-foundation/NSString", ] @@ -1738,6 +1771,7 @@ UITextView = [ "objc2-foundation/NSRange", "objc2-foundation/NSString", "objc2-foundation/NSURL", + "objc2-foundation/NSValue", "objc2-quartz-core?/CALayer", ] UITimingCurveProvider = ["objc2-foundation/NSObject"] @@ -1784,6 +1818,10 @@ UITraitCollection = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +UITraitListEnvironment = [] +UIUpdateActionPhase = [] +UIUpdateInfo = ["objc2-foundation/NSDate"] +UIUpdateLink = ["objc2-quartz-core?/CAFrameRateRange"] UIUserActivity = ["objc2-foundation/NSUserActivity"] UIUserNotificationSettings = [ "bitflags", @@ -1836,6 +1874,7 @@ UIViewController = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +UIViewControllerTransition = [] UIViewControllerTransitionCoordinator = [ "objc2-foundation/NSDate", "objc2-foundation/NSGeometry", @@ -1907,10 +1946,17 @@ UIWindowSceneGeometryPreferencesMac = ["objc2-foundation/NSGeometry"] UIWindowSceneGeometryPreferencesVision = ["objc2-foundation/NSGeometry"] UIWindowScenePlacement = ["objc2-foundation/NSObject"] UIWindowSceneProminentPlacement = ["objc2-foundation/NSObject"] +UIWindowScenePushPlacement = ["objc2-foundation/NSObject"] +UIWindowSceneReplacePlacement = ["objc2-foundation/NSObject"] UIWindowSceneStandardPlacement = ["objc2-foundation/NSObject"] +UIZoomTransitionOptions = [ + "objc2-foundation/NSGeometry", + "objc2-foundation/NSObject", +] UNNotificationResponse_UIKitAdditions = ["objc2-user-notifications?/UNNotificationResponse"] all = [ "DocumentManager", + "NSAdaptiveImageGlyph", "NSAttributedString", "NSDataAsset", "NSDiffableDataSourceSectionSnapshot", @@ -1958,10 +2004,12 @@ all = [ "UIAction", "UIActionSheet", "UIActivity", + "UIActivityCollaborationModeRestriction", "UIActivityIndicatorView", "UIActivityItemProvider", "UIActivityItemsConfiguration", "UIActivityItemsConfigurationReading", + "UIActivityItemsConfigurationReading_ShareSheet", "UIActivityViewController", "UIAlert", "UIAlertController", @@ -1986,6 +2034,7 @@ all = [ "UICalendarSelection", "UICalendarSelectionMultiDate", "UICalendarSelectionSingleDate", + "UICalendarSelectionWeekOfYear", "UICalendarView", "UICalendarViewDecoration", "UICanvasFeedbackGenerator", @@ -2038,6 +2087,7 @@ all = [ "UIDocumentPickerViewController", "UIDocumentProperties", "UIDocumentViewController", + "UIDocumentViewControllerLaunchOptions", "UIDragInteraction", "UIDragItem", "UIDragPreview", @@ -2196,6 +2246,7 @@ all = [ "UISearchController", "UISearchDisplayController", "UISearchSuggestion", + "UISearchTab", "UISearchTextField", "UISegmentedControl", "UISelectionFeedbackGenerator", @@ -2219,10 +2270,14 @@ all = [ "UISwipeGestureRecognizer", "UISwitch", "UISymbolEffectCompletion", + "UITab", "UITabBar", "UITabBarAppearance", "UITabBarController", + "UITabBarControllerSidebar", "UITabBarItem", + "UITabGroup", + "UITabSidebarItem", "UITableView", "UITableViewCell", "UITableViewController", @@ -2263,6 +2318,10 @@ all = [ "UITrackingLayoutGuide", "UITrait", "UITraitCollection", + "UITraitListEnvironment", + "UIUpdateActionPhase", + "UIUpdateInfo", + "UIUpdateLink", "UIUserActivity", "UIUserNotificationSettings", "UIVibrancyEffect", @@ -2271,6 +2330,7 @@ all = [ "UIViewAnimating", "UIViewConfigurationState", "UIViewController", + "UIViewControllerTransition", "UIViewControllerTransitionCoordinator", "UIViewControllerTransitioning", "UIViewPropertyAnimator", @@ -2291,7 +2351,10 @@ all = [ "UIWindowSceneGeometryPreferencesVision", "UIWindowScenePlacement", "UIWindowSceneProminentPlacement", + "UIWindowScenePushPlacement", + "UIWindowSceneReplacePlacement", "UIWindowSceneStandardPlacement", + "UIZoomTransitionOptions", "UNNotificationResponse_UIKitAdditions", "bitflags", "block2", diff --git a/framework-crates/objc2-ui-kit/translation-config.toml b/framework-crates/objc2-ui-kit/translation-config.toml index f61700c03..7f7b4b701 100644 --- a/framework-crates/objc2-ui-kit/translation-config.toml +++ b/framework-crates/objc2-ui-kit/translation-config.toml @@ -180,6 +180,13 @@ class.UITraitToolbarItemPresentationSize.main-thread-only = true class.UITraitImageDynamicRange.main-thread-only = true class.UITraitTypesettingLanguage.main-thread-only = true class.UITraitSceneCaptureState.main-thread-only = true +class.UITraitListEnvironment.main-thread-only = true + +# Needs CoreText +class.NSAdaptiveImageGlyph.skipped-protocols = ["CTAdaptiveImageProviding"] + +# Needs `INPerson` +protocol.UIActivityItemSource.methods."activityViewControllerShareRecipients:".skipped = true ### ### Safety diff --git a/framework-crates/objc2-user-notifications/Cargo.toml b/framework-crates/objc2-user-notifications/Cargo.toml index 2029db6f2..544be4195 100644 --- a/framework-crates/objc2-user-notifications/Cargo.toml +++ b/framework-crates/objc2-user-notifications/Cargo.toml @@ -69,6 +69,7 @@ UNNotificationAttachment = [ "objc2-foundation/NSString", "objc2-foundation/NSURL", ] +UNNotificationAttributedMessageContext = [] UNNotificationCategory = [ "bitflags", "objc2-foundation/NSArray", @@ -117,6 +118,7 @@ all = [ "UNNotificationAction", "UNNotificationActionIcon", "UNNotificationAttachment", + "UNNotificationAttributedMessageContext", "UNNotificationCategory", "UNNotificationContent", "UNNotificationRequest", diff --git a/framework-crates/objc2-user-notifications/translation-config.toml b/framework-crates/objc2-user-notifications/translation-config.toml index 127d3d15e..a0bb8c7a3 100644 --- a/framework-crates/objc2-user-notifications/translation-config.toml +++ b/framework-crates/objc2-user-notifications/translation-config.toml @@ -10,3 +10,6 @@ visionos = "1.0" class.UNNotificationContent.counterpart = "MutableSubclass(UserNotifications::UNNotificationContent::UNMutableNotificationContent)" class.UNMutableNotificationContent.counterpart = "ImmutableSuperclass(UserNotifications::UNNotificationContent::UNNotificationContent)" + +# Requires `INSendMessageIntent` from the Intents framework +class.UNNotificationAttributedMessageContext.methods."contextWithSendMessageIntent:attributedContent:".skipped = true diff --git a/framework-crates/objc2-virtualization/Cargo.toml b/framework-crates/objc2-virtualization/Cargo.toml index 27df2ee20..574f0cfa5 100644 --- a/framework-crates/objc2-virtualization/Cargo.toml +++ b/framework-crates/objc2-virtualization/Cargo.toml @@ -183,9 +183,21 @@ VZSingleDirectoryShare = [] VZSocketDevice = [] VZSocketDeviceConfiguration = ["objc2-foundation/NSObject"] VZSpiceAgentPortAttachment = ["objc2-foundation/NSString"] +VZStorageDevice = [] VZStorageDeviceAttachment = [] VZStorageDeviceConfiguration = ["objc2-foundation/NSObject"] +VZUSBController = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSError", +] +VZUSBControllerConfiguration = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] +VZUSBDevice = ["objc2-foundation/NSUUID"] +VZUSBDeviceConfiguration = ["objc2-foundation/NSUUID"] VZUSBKeyboardConfiguration = ["objc2-foundation/NSObject"] +VZUSBMassStorageDevice = [] VZUSBMassStorageDeviceConfiguration = ["objc2-foundation/NSObject"] VZUSBScreenCoordinatePointingDeviceConfiguration = ["objc2-foundation/NSObject"] VZVirtioBlockDeviceConfiguration = [ @@ -255,6 +267,8 @@ VZVirtualMachineView = [ "objc2-foundation/NSGeometry", "objc2-foundation/NSObject", ] +VZXHCIController = [] +VZXHCIControllerConfiguration = ["objc2-foundation/NSObject"] all = [ "VZAudioDeviceConfiguration", "VZAudioInputStreamSource", @@ -327,9 +341,15 @@ all = [ "VZSocketDevice", "VZSocketDeviceConfiguration", "VZSpiceAgentPortAttachment", + "VZStorageDevice", "VZStorageDeviceAttachment", "VZStorageDeviceConfiguration", + "VZUSBController", + "VZUSBControllerConfiguration", + "VZUSBDevice", + "VZUSBDeviceConfiguration", "VZUSBKeyboardConfiguration", + "VZUSBMassStorageDevice", "VZUSBMassStorageDeviceConfiguration", "VZUSBScreenCoordinatePointingDeviceConfiguration", "VZVirtioBlockDeviceConfiguration", @@ -363,6 +383,8 @@ all = [ "VZVirtualMachineDelegate", "VZVirtualMachineStartOptions", "VZVirtualMachineView", + "VZXHCIController", + "VZXHCIControllerConfiguration", "bitflags", "block2", "objc2-app-kit", diff --git a/framework-crates/objc2-vision/Cargo.toml b/framework-crates/objc2-vision/Cargo.toml index c18620e41..1609c4e76 100644 --- a/framework-crates/objc2-vision/Cargo.toml +++ b/framework-crates/objc2-vision/Cargo.toml @@ -43,6 +43,11 @@ block2 = ["dep:block2", "objc2-core-image?/block2", "objc2-core-ml?/block2", "ob objc2-core-image = ["dep:objc2-core-image"] objc2-core-ml = ["dep:objc2-core-ml"] +VNCalculateImageAestheticsScoresRequest = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSError", + "objc2-foundation/NSObject", +] VNClassifyImageRequest = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", @@ -192,6 +197,7 @@ VNGeneratePersonSegmentationRequest = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", "objc2-foundation/NSObject", + "objc2-foundation/NSValue", ] VNGeometry = [ "objc2-foundation/NSArray", @@ -321,6 +327,7 @@ VNVideoProcessor = [ "objc2-foundation/NSURL", ] all = [ + "VNCalculateImageAestheticsScoresRequest", "VNClassifyImageRequest", "VNCoreMLRequest", "VNDefines", diff --git a/generated b/generated index c952bf996..aadc4eddd 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit c952bf9965e02349b12bdc615c57c735f58f4147 +Subproject commit aadc4edddcf4d59e408ee608a9115bda54d317bf From f0efba06d5670493c69eefaef61d1904a83852e3 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 20 Sep 2024 01:56:17 +0200 Subject: [PATCH 2/6] Update to Xcode 16.0 Beta 2 --- crates/header-translator/src/unexposed_attr.rs | 2 +- crates/objc2/src/topics/about_generated/CHANGELOG.md | 7 +++++++ framework-crates/objc2-accessibility/Cargo.toml | 7 +++++++ framework-crates/objc2-background-tasks/Cargo.toml | 5 +---- framework-crates/objc2-core-ml/Cargo.toml | 3 +++ framework-crates/objc2-web-kit/Cargo.toml | 1 + generated | 2 +- 7 files changed, 21 insertions(+), 6 deletions(-) diff --git a/crates/header-translator/src/unexposed_attr.rs b/crates/header-translator/src/unexposed_attr.rs index 4582ce2b5..dc3f0c3f7 100644 --- a/crates/header-translator/src/unexposed_attr.rs +++ b/crates/header-translator/src/unexposed_attr.rs @@ -75,7 +75,7 @@ impl UnexposedAttr { } "NS_SWIFT_SENDABLE" | "AS_SWIFT_SENDABLE" => Some(Self::Sendable), "NS_SWIFT_NONSENDABLE" => Some(Self::NonSendable), - "NS_SWIFT_UI_ACTOR" => Some(Self::UIActor), + "NS_SWIFT_UI_ACTOR" | "WK_SWIFT_UI_ACTOR" => Some(Self::UIActor), "NS_SWIFT_NONISOLATED" | "UIKIT_SWIFT_ACTOR_INDEPENDENT" => Some(Self::NonIsolated), // TODO "NS_FORMAT_FUNCTION" | "NS_FORMAT_ARGUMENT" => { diff --git a/crates/objc2/src/topics/about_generated/CHANGELOG.md b/crates/objc2/src/topics/about_generated/CHANGELOG.md index 36d113902..dde9959a6 100644 --- a/crates/objc2/src/topics/about_generated/CHANGELOG.md +++ b/crates/objc2/src/topics/about_generated/CHANGELOG.md @@ -103,6 +103,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `CKModifyBadgeOperation::modifyBadgeCompletionBlock` - `CKModifyBadgeOperation::initWithBadgeValue` * **BREAKING**: Removed `SCStreamDelegate::userDidStopStream`. +- **BREAKING**: Removed `BGContinuedProcessingTaskRequest`. ### Fixed * **BREAKING**: Converted function signatures into using `extern "C-unwind"`. @@ -110,6 +111,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Removed incorrectly declared `BGTask::new` method. * **BREAKING**: Marked the following classes and protocols as `MainThreadOnly`: - `ASAuthorizationControllerPresentationContextProviding`, + - `ASAuthorizationProviderExtensionAuthorizationRequestHandler` - `ASAccountAuthenticationModificationControllerPresentationContextProviding` - `ASWebAuthenticationPresentationContextProviding` - `EXHostViewControllerDelegate` @@ -118,6 +120,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `UIToolTipConfiguration` - `UIToolTipInteractionDelegate` - `UITraitListEnvironment` + - `NSOutlineViewDelegate` + - `MEComposeSessionHandler` + - `MEExtension` + - `MEMessageSecurityHandler` + - A bunch of things in `WebKit`. ## 0.2.2 - 2024-05-21 diff --git a/framework-crates/objc2-accessibility/Cargo.toml b/framework-crates/objc2-accessibility/Cargo.toml index 070f581ca..18f567295 100644 --- a/framework-crates/objc2-accessibility/Cargo.toml +++ b/framework-crates/objc2-accessibility/Cargo.toml @@ -69,11 +69,16 @@ AXHearingUtilities = [ "objc2-foundation/NSString", "objc2-foundation/NSUUID", ] +AXRequest = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] AXSettings = [ "objc2-foundation/NSError", "objc2-foundation/NSNotification", "objc2-foundation/NSString", ] +AXTechnology = ["objc2-foundation/NSString"] all = [ "AXAudiograph", "AXBrailleMap", @@ -81,7 +86,9 @@ all = [ "AXCustomContent", "AXFoundation", "AXHearingUtilities", + "AXRequest", "AXSettings", + "AXTechnology", "bitflags", "block2", ] diff --git a/framework-crates/objc2-background-tasks/Cargo.toml b/framework-crates/objc2-background-tasks/Cargo.toml index c60b2b758..416853905 100644 --- a/framework-crates/objc2-background-tasks/Cargo.toml +++ b/framework-crates/objc2-background-tasks/Cargo.toml @@ -39,10 +39,7 @@ alloc = ["block2?/alloc", "objc2/alloc", "objc2-foundation/alloc"] block2 = ["dep:block2", "objc2-foundation/block2"] BGDefines = [] -BGTask = [ - "objc2-foundation/NSProgress", - "objc2-foundation/NSString", -] +BGTask = ["objc2-foundation/NSString"] BGTaskRequest = [ "objc2-foundation/NSDate", "objc2-foundation/NSFileManager", diff --git a/framework-crates/objc2-core-ml/Cargo.toml b/framework-crates/objc2-core-ml/Cargo.toml index 3c20c7966..807a7b6db 100644 --- a/framework-crates/objc2-core-ml/Cargo.toml +++ b/framework-crates/objc2-core-ml/Cargo.toml @@ -131,6 +131,7 @@ MLModel = [ MLModelAsset = [ "objc2-foundation/NSArray", "objc2-foundation/NSData", + "objc2-foundation/NSDictionary", "objc2-foundation/NSError", "objc2-foundation/NSString", "objc2-foundation/NSURL", @@ -242,6 +243,7 @@ MLSequenceConstraint = [ "objc2-foundation/NSObject", "objc2-foundation/NSRange", ] +MLSpecializationStrategy = [] MLState = ["objc2-foundation/NSString"] MLStateConstraint = [ "objc2-foundation/NSArray", @@ -327,6 +329,7 @@ all = [ "MLReshapeFrequencyHint", "MLSequence", "MLSequenceConstraint", + "MLSpecializationStrategy", "MLState", "MLStateConstraint", "MLTask", diff --git a/framework-crates/objc2-web-kit/Cargo.toml b/framework-crates/objc2-web-kit/Cargo.toml index 4dfbd581d..8616cd012 100644 --- a/framework-crates/objc2-web-kit/Cargo.toml +++ b/framework-crates/objc2-web-kit/Cargo.toml @@ -592,6 +592,7 @@ WKWebView = [ ] WKWebViewConfiguration = [ "bitflags", + "objc2-app-kit?/NSTextCheckingClient", "objc2-foundation/NSObject", "objc2-foundation/NSString", ] diff --git a/generated b/generated index aadc4eddd..bf96ab611 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit aadc4edddcf4d59e408ee608a9115bda54d317bf +Subproject commit bf96ab611f07022394165c3a8eeaabb20426dd09 From 44fe0e092aa5afc1524d95dbbb3a3dcb8ddf61b3 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 20 Sep 2024 03:06:04 +0200 Subject: [PATCH 3/6] Update to Xcode 16.0 Beta 3 --- crates/header-translator/src/rust_type.rs | 49 +++++++++---------- crates/header-translator/src/stmt.rs | 8 ++- .../src/topics/about_generated/CHANGELOG.md | 2 + .../objc2-foundation/src/process_info.rs | 5 -- framework-crates/objc2-speech/Cargo.toml | 2 - framework-crates/objc2-ui-kit/Cargo.toml | 47 ++++++++++++++++++ .../objc2-ui-kit/translation-config.toml | 5 +- framework-crates/objc2-web-kit/Cargo.toml | 1 - generated | 2 +- 9 files changed, 84 insertions(+), 37 deletions(-) diff --git a/crates/header-translator/src/rust_type.rs b/crates/header-translator/src/rust_type.rs index 4d0ff1f70..e163b3b48 100644 --- a/crates/header-translator/src/rust_type.rs +++ b/crates/header-translator/src/rust_type.rs @@ -424,22 +424,29 @@ pub enum Ty { impl Ty { fn parse(attributed_ty: Type<'_>, mut lifetime: Lifetime, context: &Context<'_>) -> Self { - let _span = debug_span!("ty", ?attributed_ty, ?lifetime).entered(); - let mut ty = attributed_ty; - while let TypeKind::Attributed = ty.get_kind() { - ty = ty - .get_modified_type() - .expect("attributed type to have modified type"); - } - - let _span = debug_span!("ty2", ?ty).entered(); + let _span = debug_span!("ty", ?ty, ?lifetime).entered(); let mut attributed_name = attributed_ty.get_display_name(); let mut name = ty.get_display_name(); + let mut unexposed_nullability = None; + + while let TypeKind::Unexposed | TypeKind::Attributed = ty.get_kind() { + if let TypeKind::Attributed = ty.get_kind() { + ty = ty + .get_modified_type() + .expect("attributed type to have modified type"); + name = ty.get_display_name(); + continue; + } + + if let Some(nullability) = ty.get_nullability() { + if unexposed_nullability.is_some() { + error!("unexposed nullability already set"); + } + unexposed_nullability = Some(nullability); + } - let unexposed_nullability = if let TypeKind::Unexposed = ty.get_kind() { - let nullability = ty.get_nullability(); let (new_attributed_name, attributed_attr) = parse_unexposed_tokens(&attributed_name); // Also parse the expected name to ensure that the formatting that // TokenStream does is the same on both. @@ -472,22 +479,11 @@ impl Ty { if let Some(modified) = ty.get_modified_type() { ty = modified; } else { - error!("expected unexposed type to have modified type"); + error!("expected unexposed / attributed type to have modified type"); } - nullability - } else { - None - }; - - let _span = debug_span!("ty3", ?ty).entered(); - - while let TypeKind::Attributed = ty.get_kind() { - ty = ty - .get_modified_type() - .expect("attributed type to have modified type"); } - let _span = debug_span!("ty4", ?ty).entered(); + let _span = debug_span!("ty after unexposed/attributed", ?ty).entered(); let elaborated_ty = ty; @@ -495,7 +491,7 @@ impl Ty { ty = ty.get_elaborated_type().expect("elaborated"); } - let _span = debug_span!("ty5", ?ty).entered(); + let _span = debug_span!("ty after elaborated", ?ty).entered(); let get_is_const = |new: bool| { if new { @@ -735,10 +731,11 @@ impl Ty { let is_const = get_is_const(parser.is_const(ParsePosition::Suffix)); lifetime.update(parser.lifetime(ParsePosition::Suffix)); + let nullability = parser.nullability(ParsePosition::Suffix); let nullability = if let Some(nullability) = unexposed_nullability { nullability } else { - check_nullability(&attributed_ty, parser.nullability(ParsePosition::Suffix)) + check_nullability(&attributed_ty, nullability) }; let ty = ty.get_pointee_type().expect("pointer type to have pointee"); diff --git a/crates/header-translator/src/stmt.rs b/crates/header-translator/src/stmt.rs index 6ba6d7184..75178c760 100644 --- a/crates/header-translator/src/stmt.rs +++ b/crates/header-translator/src/stmt.rs @@ -1353,7 +1353,13 @@ impl Stmt { immediate_children(entity, |entity, _span| match entity.get_kind() { EntityKind::UnexposedAttr => { if let Some(attr) = UnexposedAttr::parse(&entity, context) { - error!(?attr, "unknown attribute"); + match attr { + // TODO + UnexposedAttr::UIActor => { + warn!("unhandled UIActor on function declaration") + } + _ => error!(?attr, "unknown attribute"), + } } } EntityKind::ObjCClassRef diff --git a/crates/objc2/src/topics/about_generated/CHANGELOG.md b/crates/objc2/src/topics/about_generated/CHANGELOG.md index dde9959a6..366784e40 100644 --- a/crates/objc2/src/topics/about_generated/CHANGELOG.md +++ b/crates/objc2/src/topics/about_generated/CHANGELOG.md @@ -125,6 +125,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `MEExtension` - `MEMessageSecurityHandler` - A bunch of things in `WebKit`. +* **BREAKING**: Marked methods on the `NSObjectUIAccessibility` category as + `MainThreadOnly`. ## 0.2.2 - 2024-05-21 diff --git a/framework-crates/objc2-foundation/src/process_info.rs b/framework-crates/objc2-foundation/src/process_info.rs index e7c86c4aa..21b029f66 100644 --- a/framework-crates/objc2-foundation/src/process_info.rs +++ b/framework-crates/objc2-foundation/src/process_info.rs @@ -4,11 +4,6 @@ use core::panic::{RefUnwindSafe, UnwindSafe}; use crate::NSProcessInfo; -// SAFETY: The documentation explicitly states: -// > NSProcessInfo is thread-safe in macOS 10.7 and later. -unsafe impl Send for NSProcessInfo {} -unsafe impl Sync for NSProcessInfo {} - impl UnwindSafe for NSProcessInfo {} impl RefUnwindSafe for NSProcessInfo {} diff --git a/framework-crates/objc2-speech/Cargo.toml b/framework-crates/objc2-speech/Cargo.toml index 01c1ff698..5b2877439 100644 --- a/framework-crates/objc2-speech/Cargo.toml +++ b/framework-crates/objc2-speech/Cargo.toml @@ -38,7 +38,6 @@ std = ["alloc", "block2?/std", "objc2/std", "objc2-foundation/std"] alloc = ["block2?/alloc", "objc2/alloc", "objc2-foundation/alloc"] block2 = ["dep:block2", "objc2-foundation/block2"] -PhoneticEmbedderEnums = [] SFErrors = [ "objc2-foundation/NSError", "objc2-foundation/NSString", @@ -93,7 +92,6 @@ SFVoiceAnalytics = [ "objc2-foundation/NSValue", ] all = [ - "PhoneticEmbedderEnums", "SFErrors", "SFSpeechLanguageModel", "SFSpeechRecognitionMetadata", diff --git a/framework-crates/objc2-ui-kit/Cargo.toml b/framework-crates/objc2-ui-kit/Cargo.toml index e233bc87d..a1485eb67 100644 --- a/framework-crates/objc2-ui-kit/Cargo.toml +++ b/framework-crates/objc2-ui-kit/Cargo.toml @@ -1519,6 +1519,10 @@ UISegmentedControl = [ "objc2-quartz-core?/CALayer", ] UISelectionFeedbackGenerator = ["objc2-foundation/NSGeometry"] +UIShadowProperties = [ + "objc2-foundation/NSGeometry", + "objc2-foundation/NSObject", +] UIShape = [ "objc2-foundation/NSGeometry", "objc2-foundation/NSObject", @@ -1714,6 +1718,42 @@ UITextFormattingCoordinator = [ "objc2-foundation/NSDictionary", "objc2-foundation/NSString", ] +UITextFormattingViewController = [ + "objc2-foundation/NSBundle", + "objc2-foundation/NSCoder", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +UITextFormattingViewControllerChangeValue = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSValue", +] +UITextFormattingViewControllerComponent = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +UITextFormattingViewControllerConfiguration = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] +UITextFormattingViewControllerFormattingDescriptor = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSAttributedString", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSGeometry", + "objc2-foundation/NSObject", + "objc2-foundation/NSRange", + "objc2-foundation/NSSet", + "objc2-foundation/NSString", +] +UITextFormattingViewControllerFormattingStyle = [ + "objc2-foundation/NSAttributedString", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] UITextInput = [ "objc2-foundation/NSArray", "objc2-foundation/NSAttributedString", @@ -2250,6 +2290,7 @@ all = [ "UISearchTextField", "UISegmentedControl", "UISelectionFeedbackGenerator", + "UIShadowProperties", "UIShape", "UISheetPresentationController", "UISlider", @@ -2295,6 +2336,12 @@ all = [ "UITextDropping", "UITextField", "UITextFormattingCoordinator", + "UITextFormattingViewController", + "UITextFormattingViewControllerChangeValue", + "UITextFormattingViewControllerComponent", + "UITextFormattingViewControllerConfiguration", + "UITextFormattingViewControllerFormattingDescriptor", + "UITextFormattingViewControllerFormattingStyle", "UITextInput", "UITextInputContext", "UITextInputTraits", diff --git a/framework-crates/objc2-ui-kit/translation-config.toml b/framework-crates/objc2-ui-kit/translation-config.toml index 7f7b4b701..11c16dd08 100644 --- a/framework-crates/objc2-ui-kit/translation-config.toml +++ b/framework-crates/objc2-ui-kit/translation-config.toml @@ -63,7 +63,10 @@ class.NSAttributedString.skipped-protocols = ["NSItemProviderReading", "NSItemPr class.NSUserActivity.skipped-protocols = ["NSItemProviderReading", "NSItemProviderWriting"] # Requires MainThreadOnly, which I'm not sure UIImage is? -class.UIImage.skipped-protocols = ["UIItemProviderPresentationSizeProviding"] +class.UIImage.skipped-protocols = ["UIItemProviderPresentationSizeProviding", "UIAccessibilityIdentification"] + +# Requires MainThreadOnly, which I'm not sure NSTextAttachment is? +class.NSTextAttachment.skipped-protocols = ["UIAccessibilityContentSizeCategoryImageAdjusting"] # Type defaults to `c_int`, but value is `NSInteger` enum.anonymous.constants.NSControlCharacterZeroAdvancementAction.skipped = true diff --git a/framework-crates/objc2-web-kit/Cargo.toml b/framework-crates/objc2-web-kit/Cargo.toml index 8616cd012..4dfbd581d 100644 --- a/framework-crates/objc2-web-kit/Cargo.toml +++ b/framework-crates/objc2-web-kit/Cargo.toml @@ -592,7 +592,6 @@ WKWebView = [ ] WKWebViewConfiguration = [ "bitflags", - "objc2-app-kit?/NSTextCheckingClient", "objc2-foundation/NSObject", "objc2-foundation/NSString", ] diff --git a/generated b/generated index bf96ab611..01b08f2c3 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit bf96ab611f07022394165c3a8eeaabb20426dd09 +Subproject commit 01b08f2c3b5e3a8671bcd5148aace3a1b2743185 From fbf8fa45e72be6d4823f32e8fff30f9b506273db Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 20 Sep 2024 02:54:33 +0200 Subject: [PATCH 4/6] Update to Xcode 16.0 Beta 4 --- crates/objc2/src/topics/about_generated/CHANGELOG.md | 1 + generated | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/objc2/src/topics/about_generated/CHANGELOG.md b/crates/objc2/src/topics/about_generated/CHANGELOG.md index 366784e40..3d8b7fd67 100644 --- a/crates/objc2/src/topics/about_generated/CHANGELOG.md +++ b/crates/objc2/src/topics/about_generated/CHANGELOG.md @@ -111,6 +111,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Removed incorrectly declared `BGTask::new` method. * **BREAKING**: Marked the following classes and protocols as `MainThreadOnly`: - `ASAuthorizationControllerPresentationContextProviding`, + - `ASAuthorizationControllerDelegate` - `ASAuthorizationProviderExtensionAuthorizationRequestHandler` - `ASAccountAuthenticationModificationControllerPresentationContextProviding` - `ASWebAuthenticationPresentationContextProviding` diff --git a/generated b/generated index 01b08f2c3..212c41523 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit 01b08f2c3b5e3a8671bcd5148aace3a1b2743185 +Subproject commit 212c415233d4e142506570a64d4ae1f67f883ccb From 674b34cbc39be94019920660031c054e84cd53ec Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 20 Sep 2024 03:00:52 +0200 Subject: [PATCH 5/6] Update to Xcode 16.0 Beta 6 I didn't have Xcode 16.0 Beta 5 installed, so I just skipped that. --- crates/objc2/src/topics/about_generated/CHANGELOG.md | 2 ++ framework-crates/objc2-authentication-services/Cargo.toml | 2 +- framework-crates/objc2-ui-kit/Cargo.toml | 5 +++++ generated | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/objc2/src/topics/about_generated/CHANGELOG.md b/crates/objc2/src/topics/about_generated/CHANGELOG.md index 3d8b7fd67..5a838cdd4 100644 --- a/crates/objc2/src/topics/about_generated/CHANGELOG.md +++ b/crates/objc2/src/topics/about_generated/CHANGELOG.md @@ -125,6 +125,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `MEComposeSessionHandler` - `MEExtension` - `MEMessageSecurityHandler` + - `PHContentEditingController` + - `PHLivePhotoViewDelegate` - A bunch of things in `WebKit`. * **BREAKING**: Marked methods on the `NSObjectUIAccessibility` category as `MainThreadOnly`. diff --git a/framework-crates/objc2-authentication-services/Cargo.toml b/framework-crates/objc2-authentication-services/Cargo.toml index c84e379f9..0096c08d8 100644 --- a/framework-crates/objc2-authentication-services/Cargo.toml +++ b/framework-crates/objc2-authentication-services/Cargo.toml @@ -216,7 +216,7 @@ ASAuthorizationPublicKeyCredentialPRFAssertionInput = [ ] ASAuthorizationPublicKeyCredentialPRFAssertionOutput = ["objc2-foundation/NSData"] ASAuthorizationPublicKeyCredentialPRFRegistrationInput = [] -ASAuthorizationPublicKeyCredentialPRFRegistrationOutput = [] +ASAuthorizationPublicKeyCredentialPRFRegistrationOutput = ["objc2-foundation/NSData"] ASAuthorizationPublicKeyCredentialParameters = ["objc2-foundation/NSObject"] ASAuthorizationPublicKeyCredentialRegistration = [ "objc2-foundation/NSData", diff --git a/framework-crates/objc2-ui-kit/Cargo.toml b/framework-crates/objc2-ui-kit/Cargo.toml index a1485eb67..039f60b04 100644 --- a/framework-crates/objc2-ui-kit/Cargo.toml +++ b/framework-crates/objc2-ui-kit/Cargo.toml @@ -1446,6 +1446,10 @@ UISceneSessionActivationRequest = [ "objc2-foundation/NSString", "objc2-foundation/NSUserActivity", ] +UISceneSystemProtectionManager = [ + "objc2-foundation/NSNotification", + "objc2-foundation/NSString", +] UISceneWindowingBehaviors = [] UIScene_AVAudioSession = [] UIScreen = [ @@ -2273,6 +2277,7 @@ all = [ "UISceneOptions", "UISceneSession", "UISceneSessionActivationRequest", + "UISceneSystemProtectionManager", "UISceneWindowingBehaviors", "UIScene_AVAudioSession", "UIScreen", diff --git a/generated b/generated index 212c41523..40df03ced 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit 212c415233d4e142506570a64d4ae1f67f883ccb +Subproject commit 40df03cedf4b505a6fadb9a4414ec0e568bf3903 From a8d443487926203931bdbfbba2af1bb9ee2dec12 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 20 Sep 2024 03:03:51 +0200 Subject: [PATCH 6/6] Update to Xcode 16.0 --- framework-crates/objc2-health-kit/Cargo.toml | 2 ++ generated | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/framework-crates/objc2-health-kit/Cargo.toml b/framework-crates/objc2-health-kit/Cargo.toml index 7d3734dbd..caab31ea7 100644 --- a/framework-crates/objc2-health-kit/Cargo.toml +++ b/framework-crates/objc2-health-kit/Cargo.toml @@ -60,6 +60,7 @@ HKAnchoredObjectQuery = [ "objc2-foundation/NSError", "objc2-foundation/NSPredicate", ] +HKAppleSleepingBreathingDisturbancesClassification = ["objc2-foundation/NSValue"] HKAppleWalkingSteadinessClassification = ["objc2-foundation/NSError"] HKAttachment = [ "objc2-foundation/NSDate", @@ -457,6 +458,7 @@ all = [ "HKActivitySummary", "HKActivitySummaryQuery", "HKAnchoredObjectQuery", + "HKAppleSleepingBreathingDisturbancesClassification", "HKAppleWalkingSteadinessClassification", "HKAttachment", "HKAttachmentStore", diff --git a/generated b/generated index 40df03ced..9040a0eba 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit 40df03cedf4b505a6fadb9a4414ec0e568bf3903 +Subproject commit 9040a0eba1e556c86380324ea838454ecd49d2e4