From 60a3badc6eab0e1dc96b25cd06600648d52f4ead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Mon, 12 Oct 2026 16:36:31 +0200 Subject: [PATCH] chore(ios): mark -[RCTSurfacePresenter addObserver:] as deprecated The method was documented as deprecated, but it had no attribute, so the compiler could not warn callers. Add __deprecated_msg so that callers get -Wdeprecated-declarations. Suppress -Wdeprecated-implementations around the implementation. Claude-Session: https://claude.ai/code/session_01Do8XDDkHi4bGs3ZHQcWcAH --- packages/react-native/React/Fabric/RCTSurfacePresenter.h | 3 ++- packages/react-native/React/Fabric/RCTSurfacePresenter.mm | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-native/React/Fabric/RCTSurfacePresenter.h b/packages/react-native/React/Fabric/RCTSurfacePresenter.h index e1a6d9fccbb3..d2bc693d5005 100644 --- a/packages/react-native/React/Fabric/RCTSurfacePresenter.h +++ b/packages/react-native/React/Fabric/RCTSurfacePresenter.h @@ -74,7 +74,8 @@ NS_ASSUME_NONNULL_BEGIN * Deprecated. * Use `RCTMountingTransactionObserverCoordinator` instead. */ -- (void)addObserver:(id)observer; +- (void)addObserver:(id)observer + __deprecated_msg("Use RCTMountingTransactionObserverCoordinator instead."); - (void)removeObserver:(id)observer; /* diff --git a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm index 0b488e6c9fb8..e5b19bd47658 100644 --- a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm +++ b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm @@ -429,11 +429,14 @@ - (void)schedulerDidSetIsJSResponder:(BOOL)isJSResponder [_mountingManager setIsJSResponder:isJSResponder blockNativeResponder:blockNativeResponder forShadowView:shadowView]; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" - (void)addObserver:(id)observer { std::unique_lock lock(_observerListMutex); _observers.push_back(observer); } +#pragma clang diagnostic pop - (void)removeObserver:(id)observer {