Do not warn on defaults from defoverridable, closes #15061

This commit is contained in:
José Valim
2026-01-15 10:16:35 +01:00
parent 0862491255
commit 1b0dff7e6a
2 changed files with 19 additions and 2 deletions
+1 -1
View File
@@ -178,7 +178,7 @@ defmodule Module.Types do
default = Keyword.get(meta, :defaults, 0)
cond do
Keyword.get(meta, :context) != nil ->
Keyword.get(meta, :context) != nil or Keyword.get(meta, :from_super) == true ->
:ok
default == 0 ->
@@ -159,6 +159,18 @@ defmodule Kernel.Overridable do
def private_macro_call(val \\ 11) do
private_macro(val)
end
## Defaults
def with_default(a, b \\ 1) do
a + b
end
defoverridable with_default: 2
def with_default(a, b) do
super(a + b, a + b)
end
end
defmodule Kernel.OverridableExampleBehaviour do
@@ -171,7 +183,7 @@ end
defmodule Kernel.OverridableTest do
require Kernel.Overridable, as: Overridable
use ExUnit.Case
use ExUnit.Case, async: true
defp purge(module) do
:code.purge(module)
@@ -286,6 +298,11 @@ defmodule Kernel.OverridableTest do
assert Overridable.multiple_overrides() == [3, 2, 1]
end
test "with defaults" do
assert Overridable.with_default(5) == 12
assert Overridable.with_default(5, 2) == 14
end
test "overridable macros" do
a = 11
assert Overridable.overridable_macro(a) == 1111