-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
When making a function @spec! that's dependent on iolist(), I get the following compilation error:
== Compilation error in file lib/typing_bugs.ex ==
** (Protocol.UndefinedError) protocol TypeCheck.Protocols.ToCheck not implemented for [] of type List
(type_check 0.13.5) lib/type_check/protocols/to_check.ex:1: TypeCheck.Protocols.ToCheck.impl_for!/1
(type_check 0.13.5) lib/type_check/protocols/to_check.ex:4: TypeCheck.Protocols.ToCheck.to_check/2
(type_check 0.13.5) lib/type_check/builtin/one_of.ex:21: anonymous fn/2 in TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.OneOf.to_check/2
(elixir 1.15.5) lib/enum.ex:4317: Enum.flat_map_list/2
(elixir 1.15.5) lib/enum.ex:4318: Enum.flat_map_list/2
(type_check 0.13.5) lib/type_check/builtin/one_of.ex:20: TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.OneOf.to_check/2
(type_check 0.13.5) lib/type_check/builtin/maybe_improper_list.ex:49: TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.MaybeImproperList.build_element_check/2
(type_check 0.13.5) lib/type_check/builtin/maybe_improper_list.ex:39: TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.MaybeImproperList.to_check/2This is Elixir 1.15 and the latest release of type_check.
Reproducing:
- Make a new mix project.
- add these dependencies:
{:dialyxir, "~> 1.4", runtime: false},
{:credo, "~> 1.7", runtime: false},
{:type_check, "~> 0.13.5"}, # https://hexdocs.pm/type_check/readme.html
- add this code in a module:
@spec! iol(iolist()) :: iolist()
def iol(ll) do
[:test | ll]
endMetadata
Metadata
Assignees
Labels
No labels