Skip to content

Commit ce33663

Browse files
committed
Relax return type of impl_for with nil to avoid false positives
1 parent 752ca88 commit ce33663

File tree

2 files changed

+1
-26
lines changed

2 files changed

+1
-26
lines changed

lib/elixir/lib/protocol.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ defmodule Protocol do
669669

670670
{Descr.term(), clauses, clauses}
671671
else
672-
{domain, clauses ++ [{[not_domain], Descr.atom([nil])}], clauses}
672+
{domain, [{[Descr.term()], Descr.atom()}], clauses}
673673
end
674674
end
675675

lib/elixir/test/elixir/protocol/consolidation_test.exs

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -176,31 +176,6 @@ defmodule Protocol.ConsolidationTest do
176176
assert %{{:ok, 1} => %{deprecated: "Reason", sig: _}} = exports(sample_binary())
177177
end
178178

179-
test "defines signatures without fallback to any" do
180-
exports = exports(sample_binary())
181-
182-
assert %{{:impl_for, 1} => %{sig: {:strong, domain, clauses}}} = exports
183-
assert domain == [term()]
184-
185-
assert clauses == [
186-
{[Of.impl(ImplStruct)], atom([Sample.Protocol.ConsolidationTest.ImplStruct])},
187-
{[negation(Of.impl(ImplStruct))], atom([nil])}
188-
]
189-
190-
assert %{{:impl_for!, 1} => %{sig: {:strong, domain, clauses}}} = exports
191-
assert domain == [Of.impl(ImplStruct)]
192-
193-
assert clauses == [
194-
{[Of.impl(ImplStruct)], atom([Sample.Protocol.ConsolidationTest.ImplStruct])}
195-
]
196-
197-
assert %{{:ok, 1} => %{sig: {:strong, nil, clauses}}} = exports
198-
199-
assert clauses == [
200-
{[Of.impl(ImplStruct)], dynamic()}
201-
]
202-
end
203-
204179
test "defines signatures with fallback to any" do
205180
exports = exports(with_any_binary())
206181

0 commit comments

Comments
 (0)