Fix type warnings in pop_in/1 (#14064)
This commit is contained in:
@@ -3306,7 +3306,7 @@ defmodule Kernel do
|
||||
end
|
||||
|
||||
defp nest_pop_in(:map, h, [{:access, key}]) do
|
||||
quote do
|
||||
quote generated: true do
|
||||
case unquote(h) do
|
||||
nil -> {nil, nil}
|
||||
h -> Access.pop(h, unquote(key))
|
||||
@@ -3327,7 +3327,7 @@ defmodule Kernel do
|
||||
end
|
||||
|
||||
defp nest_pop_in(_, h, [{:access, key}]) do
|
||||
quote do
|
||||
quote generated: true do
|
||||
case unquote(h) do
|
||||
nil -> :pop
|
||||
h -> Access.pop(h, unquote(key))
|
||||
|
||||
@@ -1136,6 +1136,8 @@ defmodule KernelTest do
|
||||
test "pop_in/1" do
|
||||
users = %{"john" => %{age: 27}, "meg" => %{age: 23}}
|
||||
|
||||
assert pop_in(users["john"]) == {%{age: 27}, %{"meg" => %{age: 23}}}
|
||||
|
||||
assert pop_in(users["john"][:age]) == {27, %{"john" => %{}, "meg" => %{age: 23}}}
|
||||
assert pop_in(users["john"][:name]) == {nil, %{"john" => %{age: 27}, "meg" => %{age: 23}}}
|
||||
assert pop_in(users["bob"][:age]) == {nil, %{"john" => %{age: 27}, "meg" => %{age: 23}}}
|
||||
|
||||
Reference in New Issue
Block a user