summaryrefslogtreecommitdiff
path: root/dev-lang/elixir/files/elixir-1.11.4-update-warnings-for-OTP-master-10807.patch
diff options
context:
space:
mode:
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.patch125
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
-