diff options
Diffstat (limited to 'dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch')
-rw-r--r-- | dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch b/dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch deleted file mode 100644 index 2cc0b217cbb1..000000000000 --- a/dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 237a71311c5ae4fc5dd3c7a590a7b6dab97a664a Mon Sep 17 00:00:00 2001 -From: Wojtek Mach <wojtekmach@users.noreply.github.com> -Date: Tue, 23 Mar 2021 17:40:04 +0100 -Subject: [PATCH 2/3] Update warnings for OTP master (#10807) - ---- - lib/elixir/src/elixir_erl_compiler.erl | 34 ++++++++++++------- - .../test/elixir/kernel/warning_test.exs | 25 -------------- - 2 files changed, 21 insertions(+), 38 deletions(-) - -diff --git a/lib/elixir/src/elixir_erl_compiler.erl b/lib/elixir/src/elixir_erl_compiler.erl -index 7010b59fd..e0aa05114 100644 ---- a/lib/elixir/src/elixir_erl_compiler.erl -+++ b/lib/elixir/src/elixir_erl_compiler.erl -@@ -94,6 +94,8 @@ handle_file_warning(true, _File, {_Line, sys_core_fold, {nomatch_shadow, _}}) -> - - %% Those we implement ourselves - handle_file_warning(_, _File, {_Line, v3_core, {map_key_repeated, _}}) -> ok; -+handle_file_warning(_, _File, {_Line, sys_core_fold, {ignored, useless_building}}) -> ok; -+%% TODO: remove when we require Erlang/OTP 24 - handle_file_warning(_, _File, {_Line, sys_core_fold, useless_building}) -> ok; - - %% Ignore all linting errors (only come up on parse transforms) -@@ -112,11 +114,11 @@ handle_file_error(File, {Line, Module, Desc}) -> - elixir_errors:compile_error([{line, Line}], File, Message). - - %% Mention the capture operator in make_fun --custom_format(sys_core_fold, {no_effect, {erlang, make_fun, 3}}) -> -+custom_format(sys_core_fold, {ignored, {no_effect, {erlang, make_fun, 3}}}) -> - "the result of the capture operator & (:erlang.make_fun/3) is never used"; - - %% Make no_effect clauses pretty --custom_format(sys_core_fold, {no_effect, {erlang, F, A}}) -> -+custom_format(sys_core_fold, {ignored, {no_effect, {erlang, F, A}}}) -> - {Fmt, Args} = case erl_internal:comp_op(F, A) of - true -> {"use of operator ~ts has no effect", [elixir_utils:erlang_comparison_op_to_elixir(F)]}; - false -> -@@ -127,12 +129,20 @@ custom_format(sys_core_fold, {no_effect, {erlang, F, A}}) -> - end, - io_lib:format(Fmt, Args); - --%% Rewrite nomatch_guard to be more generic it can happen inside if, unless, and the like --custom_format(sys_core_fold, nomatch_guard) -> -+%% Rewrite nomatch to be more generic, it can happen inside if, unless, and the like -+custom_format(sys_core_fold, {nomatch, X}) when X == guard; X == no_clause -> - "this check/guard will always yield the same result"; - -+custom_format(sys_core_fold, {nomatch, {shadow, Line, {ErlName, ErlArity}}}) -> -+ {Name, Arity} = elixir_utils:erl_fa_to_elixir_fa(ErlName, ErlArity), -+ -+ io_lib:format( -+ "this clause for ~ts/~B cannot match because a previous clause at line ~B always matches", -+ [Name, Arity, Line] -+ ); -+ - %% Handle literal eval failures --custom_format(sys_core_fold, {eval_failure, {Mod, Name, Arity}, Error}) -> -+custom_format(sys_core_fold, {failed, {eval_failure, {Mod, Name, Arity}, Error}}) -> - #{'__struct__' := Struct} = 'Elixir.Exception':normalize(error, Error), - {ExMod, ExName, ExArgs} = elixir_rewrite:erl_to_ex(Mod, Name, lists:duplicate(Arity, nil)), - Call = 'Elixir.Exception':format_mfa(ExMod, ExName, length(ExArgs)), -@@ -143,18 +153,16 @@ custom_format(sys_core_fold, {eval_failure, {Mod, Name, Arity}, Error}) -> - ["the call to ", Trimmed, " will fail with ", elixir_aliases:inspect(Struct)]; - - %% TODO: remove when we require OTP 24 -+custom_format(sys_core_fold, {nomatch_shadow, Line, FA}) -> -+ custom_format(sys_core_fold, {nomatch, {shadow, Line, FA}}); -+custom_format(sys_core_fold, nomatch_guard) -> -+ custom_format(sys_core_fold, {nomatch, guard}); -+custom_format(sys_core_fold, {no_effect, X}) -> -+ custom_format(sys_core_fold, {ignored, {no_effect, X}}); - custom_format(sys_core_fold, {eval_failure, Error}) -> - #{'__struct__' := Struct} = 'Elixir.Exception':normalize(error, Error), - ["this expression will fail with ", elixir_aliases:inspect(Struct)]; - --custom_format(sys_core_fold, {nomatch_shadow,Line,{ErlName,ErlArity}}) -> -- {Name, Arity} = elixir_utils:erl_fa_to_elixir_fa(ErlName, ErlArity), -- -- io_lib:format( -- "this clause for ~ts/~B cannot match because a previous clause at line ~B always matches", -- [Name, Arity, Line] -- ); -- - custom_format([], Desc) -> - io_lib:format("~p", [Desc]); - -diff --git a/lib/elixir/test/elixir/kernel/warning_test.exs b/lib/elixir/test/elixir/kernel/warning_test.exs -index 15a984a54..37334ff65 100644 ---- a/lib/elixir/test/elixir/kernel/warning_test.exs -+++ b/lib/elixir/test/elixir/kernel/warning_test.exs -@@ -1154,31 +1154,6 @@ def foo(x), do: :ok - purge(Sample) - end - -- test "with and do clauses emit errors, else clauses do not" do -- assert capture_err(fn -> -- Code.compile_string(""" -- with {:first, int} when is_integer(int) <- {:second, Integer.gcd(2, 4)} do -- int -- end -- """) -- end) =~ "this clause cannot match" -- -- assert capture_err(fn -> -- Code.compile_string(""" -- with {:first, int1} when is_integer(int1) <- {:first, Integer.gcd(2, 4)}, -- {:second, int2} when is_integer(int2) <- {:second, Integer.gcd(2, 4)} do -- {:ok, int1 + int2} -- else -- {:first, nil} -> {:error, "first number is not integer"} -- {:second, nil} -> {:error, "second number is not integer"} -- end -- """) -- end) == "" -- after -- purge(Sample1) -- purge(Sample2) -- end -- - test "warning on code point escape" do - assert capture_err(fn -> - Code.eval_string("? ") --- -2.31.1 - |