File 0155-erlang-fix-spawn_link.patch of Package erlang

From 708dbcbe67b25ee63f985f5e0c50fc5b6e37c038 Mon Sep 17 00:00:00 2001
From: Ilya Klyuchnikov <ilyaklyuchnikov@meta.com>
Date: Fri, 11 Jul 2025 10:05:29 +0100
Subject: [PATCH] erlang: fix spawn_link

---
 erts/preloaded/src/erlang.erl | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/erts/preloaded/src/erlang.erl b/erts/preloaded/src/erlang.erl
index 31848f1037..cde5da328f 100644
--- a/erts/preloaded/src/erlang.erl
+++ b/erts/preloaded/src/erlang.erl
@@ -10456,11 +10456,9 @@ the new process, atomically. Otherwise works like `spawn/3`.
 """.
 -doc #{ category => processes }.
 -spec spawn_link(Fun) -> pid() when
-      Fun :: function().
-spawn_link(F) when erlang:is_function(F) ->
+      Fun :: fun(() -> term()).
+spawn_link(F) when erlang:is_function(F, 0) ->
     erlang:spawn_link(erlang, apply, [F, []]);
-spawn_link({M,F}=MF) when erlang:is_atom(M), erlang:is_atom(F) ->
-    erlang:spawn_link(erlang, apply, [MF, []]);
 spawn_link(F) ->
     badarg_with_info([F]).
 
@@ -10474,13 +10472,11 @@ process. Otherwise works like `spawn/3`.
 -doc #{ category => processes }.
 -spec spawn_link(Node, Fun) -> pid() when
       Node :: node(),
-      Fun :: function().
+      Fun :: fun(() -> term()).
 spawn_link(N, F) when N =:= erlang:node() ->
     spawn_link(F);
-spawn_link(N, F) when erlang:is_function(F) ->
+spawn_link(N, F) when erlang:is_function(F, 0) ->
     spawn_link(N, erlang, apply, [F, []]);
-spawn_link(N, {M,F}=MF) when erlang:is_atom(M), erlang:is_atom(F) ->
-    spawn_link(N, erlang, apply, [MF, []]);
 spawn_link(N, F) ->
     badarg_with_info([N, F]).
 
-- 
2.51.0

openSUSE Build Service is sponsored by