From 12219604792a7279de2f936cb151b2da8e6b5164 Mon Sep 17 00:00:00 2001 From: Adrian Gruntkowski Date: Tue, 28 Jan 2025 14:25:04 +0100 Subject: [PATCH] Make standard match bindings not throw unused warnings --- test/support/assert_matches.ex | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/test/support/assert_matches.ex b/test/support/assert_matches.ex index f1e4fe1c708e..9b22c565a38e 100644 --- a/test/support/assert_matches.ex +++ b/test/support/assert_matches.ex @@ -68,7 +68,11 @@ defmodule Plausible.AssertMatches do {:^, _meta, [pinned]}, acc -> pinned = Plausible.AssertMatches.Internal.transform_predicate(pinned) - pinned_var = Macro.unique_var(:match, __MODULE__) + + pinned_var = + Macro.unique_var(:match, __MODULE__) + |> Macro.update_meta(&Keyword.put(&1, :assert_match, true)) + {pinned_var, [{pinned_var, pinned} | acc]} other, acc -> @@ -83,6 +87,19 @@ defmodule Plausible.AssertMatches do end) end) + var_pattern = + Macro.postwalk(var_pattern, fn + {name, meta, module} = var when is_atom(name) and is_atom(module) -> + if meta[:assert_match] do + var + else + {:_, [], __MODULE__} + end + + other -> + other + end) + predicate_pattern = quote bind_quoted: [ var_pattern: Macro.escape(var_pattern),