From 98e366d8b00b961c1980f65f808051b6d1ce6a3f Mon Sep 17 00:00:00 2001 From: Jeremy Huffman Date: Tue, 24 Sep 2024 08:01:48 -0400 Subject: [PATCH 1/3] Fix matching of invalid_contract args. --- lib/dialyxir/warnings/invalid_contract.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dialyxir/warnings/invalid_contract.ex b/lib/dialyxir/warnings/invalid_contract.ex index c16e68c9..2f86a51b 100644 --- a/lib/dialyxir/warnings/invalid_contract.ex +++ b/lib/dialyxir/warnings/invalid_contract.ex @@ -31,7 +31,7 @@ defmodule Dialyxir.Warnings.InvalidContract do @impl Dialyxir.Warning @spec format_long([String.t()]) :: String.t() - def format_long([module, function, arity, signature]) do + def format_long([module, function, arity, _args, signature | _]) do pretty_module = Erlex.pretty_print(module) pretty_signature = Erlex.pretty_print_contract(signature) From 412e9df0a10c7a87a2b081d7ee714546a2e6eb2a Mon Sep 17 00:00:00 2001 From: Jeremy Huffman Date: Tue, 24 Sep 2024 08:15:09 -0400 Subject: [PATCH 2/3] Backwards compatibility with OTP 25 & earlier. --- lib/dialyxir/warnings/invalid_contract.ex | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/dialyxir/warnings/invalid_contract.ex b/lib/dialyxir/warnings/invalid_contract.ex index 2f86a51b..95cb0f6e 100644 --- a/lib/dialyxir/warnings/invalid_contract.ex +++ b/lib/dialyxir/warnings/invalid_contract.ex @@ -31,7 +31,11 @@ defmodule Dialyxir.Warnings.InvalidContract do @impl Dialyxir.Warning @spec format_long([String.t()]) :: String.t() - def format_long([module, function, arity, _args, signature | _]) do + def format_long([module, function, arity, signature]) do + format_long([module, function, arity, nil, signature]) + end + + def format_long([module, function, arity, _args, signature]) do pretty_module = Erlex.pretty_print(module) pretty_signature = Erlex.pretty_print_contract(signature) From 75da7628cb6720f13406ad2d8660789e1c3f4d2b Mon Sep 17 00:00:00 2001 From: Jeremy Huffman Date: Tue, 24 Sep 2024 08:45:25 -0400 Subject: [PATCH 3/3] Yes, also an extra trailing arg. --- lib/dialyxir/warnings/invalid_contract.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dialyxir/warnings/invalid_contract.ex b/lib/dialyxir/warnings/invalid_contract.ex index 95cb0f6e..67e21f88 100644 --- a/lib/dialyxir/warnings/invalid_contract.ex +++ b/lib/dialyxir/warnings/invalid_contract.ex @@ -35,7 +35,7 @@ defmodule Dialyxir.Warnings.InvalidContract do format_long([module, function, arity, nil, signature]) end - def format_long([module, function, arity, _args, signature]) do + def format_long([module, function, arity, _args, signature | _]) do pretty_module = Erlex.pretty_print(module) pretty_signature = Erlex.pretty_print_contract(signature)