From a29ee24722ef48132cb06ac5dc6d725480eedd33 Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Tue, 23 Jun 2026 11:25:03 +0400 Subject: [PATCH] fix(core): annotate ambiguous memberRole record update (#7120) The armv7a-android cross-compiler GHC refuses to disambiguate the bare record update m {memberRole = role} (the field is shared by many record types), failing the lib:simplex-chat build with "Record update is ambiguous, and requires a type signature". Annotate the updated record as (m :: GroupMember), matching the existing workaround already used a few lines below in the same function. --- src/Simplex/Chat/Library/Subscriber.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index a2ea9870cc..c3f61f83b0 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -3411,8 +3411,8 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = Just k | k /= pubKey -> pure (Left (memberId' m)) | memberRole' m == role -> pure (Right Nothing) - | otherwise -> updateGroupMemberRole db user m role $> Right (Just (m {memberRole = role}, memberRole' m)) - Nothing -> setGroupMemberKeyRole db m pubKey role $> Right (Just (m {memberRole = role}, memberRole' m)) + | otherwise -> updateGroupMemberRole db user m role $> Right (Just ((m :: GroupMember) {memberRole = role}, memberRole' m)) + Nothing -> setGroupMemberKeyRole db m pubKey role $> Right (Just ((m :: GroupMember) {memberRole = role}, memberRole' m)) -- TOFU apply: pin each member's key on first use, then update roles. processRosterEntries :: DB.Connection -> GroupInfo -> GroupMemberRole -> [RosterMember] -> ExceptT StoreError IO ([MemberId], [(GroupMember, GroupMemberRole, Bool)])