From 5a2ca2ea2380eedbafe0bbde7703d4f110ad7eaf Mon Sep 17 00:00:00 2001 From: Oluwatobi Shokunbi Date: Sun, 22 Feb 2026 18:14:24 +0000 Subject: [PATCH] [iOS][expo-modules-core] Fix field.options mutation lost on protocol existential (#43341) Co-authored-by: Tomasz Sapeta --- packages/expo-modules-core/CHANGELOG.md | 2 ++ packages/expo-modules-core/ios/Core/Records/Record.swift | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/expo-modules-core/CHANGELOG.md b/packages/expo-modules-core/CHANGELOG.md index 47f9ea3375fc17..50a98d75addfd6 100644 --- a/packages/expo-modules-core/CHANGELOG.md +++ b/packages/expo-modules-core/CHANGELOG.md @@ -8,6 +8,8 @@ ### 🐛 Bug fixes +- [iOS] Fixed `field.options.insert()` silently failing in `fieldsOf()` due to mutation on protocol existential. ([#43341](https://github.com/expo/expo/pull/43341) by [@just1and0](https://github.com/just1and0)) + ### 💡 Others ## 55.0.10 — 2026-02-20 diff --git a/packages/expo-modules-core/ios/Core/Records/Record.swift b/packages/expo-modules-core/ios/Core/Records/Record.swift index eac762bbdbe80e..c40042eca5028c 100644 --- a/packages/expo-modules-core/ios/Core/Records/Record.swift +++ b/packages/expo-modules-core/ios/Core/Records/Record.swift @@ -97,7 +97,7 @@ internal func fieldsOf(_ record: Record) -> [AnyFieldInternal] { guard var field = value as? AnyFieldInternal, let key = field.key ?? convertLabelToKey(label) else { return nil } - field.options.insert(.keyed(key)) + field.options = field.options.union([.keyed(key)]) return field } }