mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix(gateway): satisfy dialyzer after the hotpatch reconcile (#2427)
This commit is contained in:
@@ -190,7 +190,9 @@ spawn_push(FinalData, GuildId, UpdatedState) ->
|
||||
Data = maps:get(data, UpdatedState, #{}),
|
||||
case maps:get(members_ets, Data, undefined) of
|
||||
MembersTab when is_reference(MembersTab) ->
|
||||
CompactState = compact_push_state(MembersTab, Data, GuildId, UpdatedState),
|
||||
CompactState = compact_push_state(
|
||||
eqwalizer:dynamic_cast(MembersTab), Data, GuildId, UpdatedState
|
||||
),
|
||||
spawn_compact_push(FinalData, GuildId, CompactState);
|
||||
_ ->
|
||||
missing_members_table(FinalData, GuildId, UpdatedState)
|
||||
@@ -344,7 +346,7 @@ send_compact_push_notifications(MessageData, GuildId, State) ->
|
||||
-spec scan_and_send_compact_push(event_data(), guild_id(), integer(), guild_state()) -> ok.
|
||||
scan_and_send_compact_push(MessageData, GuildId, ChannelId, State) ->
|
||||
Context = compact_scan_context(MessageData, ChannelId, State),
|
||||
MembersTab = maps:get(members_ets, State),
|
||||
MembersTab = eqwalizer:dynamic_cast(maps:get(members_ets, State)),
|
||||
case scan_push_members(MembersTab, Context, State) of
|
||||
{ok, #{eligible_user_ids := []}} ->
|
||||
ok;
|
||||
@@ -809,8 +811,7 @@ actively_engaged(UserId, Presences) ->
|
||||
-spec lookup_presence_safe(user_id(), term()) -> map() | undefined.
|
||||
lookup_presence_safe(UserId, Presences) ->
|
||||
try guild_state_member:lookup_presence(Presences, UserId) of
|
||||
Presence when is_map(Presence) -> Presence;
|
||||
_ -> undefined
|
||||
Presence -> Presence
|
||||
catch
|
||||
error:badarg -> undefined
|
||||
end.
|
||||
|
||||
@@ -162,8 +162,6 @@ is_channel_visible(Channel, UserId, Member, State) ->
|
||||
-spec dispatch_bulk_to_pid(
|
||||
pid(), event(), event_data(), [map()], guild_id(), non_neg_integer()
|
||||
) -> non_neg_integer().
|
||||
dispatch_bulk_to_pid(_, _, _, [], _GuildId, Acc) ->
|
||||
Acc;
|
||||
dispatch_bulk_to_pid(Pid, Event, FinalData, FilteredChannels, GuildId, Acc) when is_pid(Pid) ->
|
||||
EncodedData = encode_bulk_payload(FinalData, FilteredChannels),
|
||||
try
|
||||
|
||||
@@ -59,7 +59,7 @@ repair_unhealthy(State) ->
|
||||
repair_pass(State) ->
|
||||
case maps:get(?REPAIR_KEY, State, undefined) of
|
||||
#{tab := Tab, ticks := Ticks} when is_reference(Tab), is_integer(Ticks) ->
|
||||
continue_repair(Tab, Ticks, State);
|
||||
continue_repair(eqwalizer:dynamic_cast(Tab), Ticks, State);
|
||||
_ ->
|
||||
start_repair(maps:remove(?REPAIR_KEY, State))
|
||||
end.
|
||||
@@ -90,7 +90,7 @@ refuse_oversized(Size, State) ->
|
||||
-spec create_staging_table(guild_state()) -> guild_state().
|
||||
create_staging_table(State) ->
|
||||
case new_staging_table() of
|
||||
Tab when is_reference(Tab) -> continue_repair(Tab, 0, State);
|
||||
Tab when is_reference(Tab) -> continue_repair(eqwalizer:dynamic_cast(Tab), 0, State);
|
||||
undefined -> record_start_failure(State)
|
||||
end.
|
||||
|
||||
@@ -221,9 +221,12 @@ collect_extra_iter(Key, Tab, MemberMap, Budget, Acc) ->
|
||||
-spec release_pending_repair(guild_state()) -> guild_state().
|
||||
release_pending_repair(State) ->
|
||||
case maps:get(?REPAIR_KEY, State, undefined) of
|
||||
undefined -> State;
|
||||
#{tab := Tab} when is_reference(Tab) -> discard_staging_table(Tab, State);
|
||||
_ -> maps:remove(?REPAIR_KEY, State)
|
||||
undefined ->
|
||||
State;
|
||||
#{tab := Tab} when is_reference(Tab) ->
|
||||
discard_staging_table(eqwalizer:dynamic_cast(Tab), State);
|
||||
_ ->
|
||||
maps:remove(?REPAIR_KEY, State)
|
||||
end.
|
||||
|
||||
-spec discard_staging_table(ets:tid(), guild_state()) -> guild_state().
|
||||
|
||||
@@ -529,10 +529,8 @@ fetch_blocked_ids_chunk(UserIds) ->
|
||||
<<"user_ids">> => [integer_to_binary(UserId) || UserId <- UserIds]
|
||||
},
|
||||
case rpc_client:call(Request) of
|
||||
{ok, Data} when is_map(Data) ->
|
||||
{ok, Data} ->
|
||||
cache_blocked_ids_response(UserIds, Data);
|
||||
{ok, _Data} ->
|
||||
fetch_blocked_ids_failed(malformed_response, length(UserIds));
|
||||
{error, Reason} ->
|
||||
fetch_blocked_ids_failed(Reason, length(UserIds))
|
||||
end.
|
||||
|
||||
@@ -375,7 +375,7 @@ counter_table_status() ->
|
||||
|
||||
-spec queue_backlog_lost(term(), non_neg_integer()) -> counter_value().
|
||||
queue_backlog_lost(Enqueued, Queued) when is_integer(Enqueued) ->
|
||||
max(0, Enqueued - dequeued_total() - Queued);
|
||||
max(0, trunc(Enqueued - dequeued_total() - Queued));
|
||||
queue_backlog_lost(_Enqueued, _Queued) ->
|
||||
unavailable.
|
||||
|
||||
|
||||
@@ -287,8 +287,7 @@ expire_blocked_ids() ->
|
||||
Now = erlang:system_time(second),
|
||||
MatchSpec = [{{'_', '_', '$1'}, [{is_integer, '$1'}, {'=<', '$1', Now}], [true]}],
|
||||
try ets:select_delete(?BLOCKED_IDS, MatchSpec) of
|
||||
Deleted when is_integer(Deleted) -> Deleted;
|
||||
_ -> 0
|
||||
Deleted -> Deleted
|
||||
catch
|
||||
error:badarg -> 0
|
||||
end.
|
||||
|
||||
@@ -334,9 +334,8 @@ truncate_preview(Content) ->
|
||||
valid_utf8_prefix(Content) ->
|
||||
case unicode:characters_to_binary(Content, utf8, utf8) of
|
||||
Valid when is_binary(Valid) -> Valid;
|
||||
{incomplete, Valid, _Rest} when is_binary(Valid) -> Valid;
|
||||
{error, Valid, _Rest} when is_binary(Valid) -> Valid;
|
||||
_ -> <<>>
|
||||
{incomplete, Valid, _Rest} -> Valid;
|
||||
{error, Valid, _Rest} -> Valid
|
||||
end.
|
||||
|
||||
-spec build_content_fallback_preview(map()) -> binary().
|
||||
|
||||
@@ -543,7 +543,7 @@ abandon_delivery_workers([], Stranded) ->
|
||||
Stranded;
|
||||
abandon_delivery_workers([{_Pid, {Ref, Left}} | Rest], Stranded) ->
|
||||
_ = erlang:demonitor(Ref, [flush]),
|
||||
abandon_delivery_workers(Rest, Stranded + Left).
|
||||
abandon_delivery_workers(Rest, trunc(Stranded + Left)).
|
||||
|
||||
-spec delivery_ids(tuple()) -> {integer(), integer()}.
|
||||
delivery_ids(Ctx) ->
|
||||
|
||||
@@ -71,8 +71,7 @@ normalize_buffer(_) ->
|
||||
-spec deque_to_list(map()) -> [term()].
|
||||
deque_to_list(Buffer) ->
|
||||
try limited_deque:to_list(eqwalizer:dynamic_cast(Buffer)) of
|
||||
List when is_list(List) -> List;
|
||||
_ -> []
|
||||
List -> List
|
||||
catch
|
||||
error:_Reason -> [];
|
||||
exit:_Reason -> []
|
||||
@@ -109,14 +108,14 @@ restored_deque_bytes(Raw, Buffer) ->
|
||||
replay_buffer_bytes(Buffer) ->
|
||||
WordSize = erlang:system_info(wordsize),
|
||||
lists:foldl(
|
||||
fun(Event, Acc) -> Acc + erts_debug:flat_size(Event) * WordSize end,
|
||||
fun(Event, Acc) -> trunc(Acc + erts_debug:flat_size(Event) * WordSize) end,
|
||||
0,
|
||||
Buffer
|
||||
).
|
||||
|
||||
-spec replay_payload_bytes([map()]) -> non_neg_integer().
|
||||
replay_payload_bytes(Buffer) ->
|
||||
lists:foldl(fun(Event, Acc) -> Acc + entry_payload_bytes(Event) end, 0, Buffer).
|
||||
lists:foldl(fun(Event, Acc) -> trunc(Acc + entry_payload_bytes(Event)) end, 0, Buffer).
|
||||
|
||||
-spec entry_payload_bytes(term()) -> non_neg_integer().
|
||||
entry_payload_bytes(#{data := {pre_encoded, Payload}}) when is_binary(Payload) ->
|
||||
|
||||
@@ -301,7 +301,7 @@ ack_state(State, AckedSeq, NewBuffer, NewBytes) ->
|
||||
|
||||
-spec buffer_payload_bytes(term()) -> non_neg_integer().
|
||||
buffer_payload_bytes(Buffer) when is_list(Buffer) ->
|
||||
lists:foldl(fun(Entry, Acc) -> Acc + entry_payload_bytes(Entry) end, 0, Buffer);
|
||||
lists:foldl(fun(Entry, Acc) -> trunc(Acc + entry_payload_bytes(Entry)) end, 0, Buffer);
|
||||
buffer_payload_bytes(Buffer) ->
|
||||
try limited_deque:to_list(Buffer) of
|
||||
Entries -> buffer_payload_bytes(Entries)
|
||||
@@ -642,7 +642,7 @@ trim_transfer_list([Dropped | Rest], Bytes, AckSeq) ->
|
||||
|
||||
-spec transfer_payload_bytes([term()]) -> non_neg_integer().
|
||||
transfer_payload_bytes(Entries) ->
|
||||
lists:foldl(fun(Entry, Acc) -> Acc + entry_payload_bytes(Entry) end, 0, Entries).
|
||||
lists:foldl(fun(Entry, Acc) -> trunc(Acc + entry_payload_bytes(Entry)) end, 0, Entries).
|
||||
|
||||
-spec entry_payload_bytes(term()) -> non_neg_integer().
|
||||
entry_payload_bytes(#{data := {pre_encoded, Payload}}) when is_binary(Payload) ->
|
||||
|
||||
@@ -81,8 +81,7 @@ expires_at_ms(_Value) ->
|
||||
-spec parse_rfc3339(term()) -> offset().
|
||||
parse_rfc3339(Chars) ->
|
||||
try calendar:rfc3339_to_system_time(Chars, [{unit, millisecond}]) of
|
||||
Ms when is_integer(Ms) -> {ok, Ms};
|
||||
_Other -> none
|
||||
Ms -> {ok, Ms}
|
||||
catch
|
||||
_Class:_Reason -> none
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user