File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed
Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -178,7 +178,7 @@ defmodule Module.Types do
178178 default = Keyword . get ( meta , :defaults , 0 )
179179
180180 cond do
181- Keyword . get ( meta , :context ) != nil ->
181+ Keyword . get ( meta , :context ) != nil or Keyword . get ( meta , :from_super ) == true ->
182182 :ok
183183
184184 default == 0 ->
Original file line number Diff line number Diff line change @@ -159,6 +159,18 @@ defmodule Kernel.Overridable do
159159 def private_macro_call ( val \\ 11 ) do
160160 private_macro ( val )
161161 end
162+
163+ ## Defaults
164+
165+ def with_default ( a , b \\ 1 ) do
166+ a + b
167+ end
168+
169+ defoverridable with_default: 2
170+
171+ def with_default ( a , b ) do
172+ super ( a + b , a + b )
173+ end
162174end
163175
164176defmodule Kernel.OverridableExampleBehaviour do
171183
172184defmodule Kernel.OverridableTest do
173185 require Kernel.Overridable , as: Overridable
174- use ExUnit.Case
186+ use ExUnit.Case , async: true
175187
176188 defp purge ( module ) do
177189 :code . purge ( module )
@@ -286,6 +298,11 @@ defmodule Kernel.OverridableTest do
286298 assert Overridable . multiple_overrides ( ) == [ 3 , 2 , 1 ]
287299 end
288300
301+ test "with defaults" do
302+ assert Overridable . with_default ( 5 ) == 12
303+ assert Overridable . with_default ( 5 , 2 ) == 14
304+ end
305+
289306 test "overridable macros" do
290307 a = 11
291308 assert Overridable . overridable_macro ( a ) == 1111
You can’t perform that action at this time.
0 commit comments