Skip to content

Pollution doesn't compile on Elixir 1.10.0 #15

@davydog187

Description

@davydog187

Hello, we are currently pulling in pollution via Quixir, and seeing this issue when trying to compile pollution on Elixir 1.10.0

==> pollution
Compiling 17 files (.ex)
** (EXIT from #PID<0.92.0>) an exception was raised:
    ** (KeyError) key {:size, 1} not found in: %{{:ceil, 1} => {[:number], :integer}, {:<, 2} => {[:dynamic, :dynamic], :boolean}, {:floor, 1} => {[:number], :integer}, {:byte_size, 1} => {[:binary], :integer}, {:bxor, 2} => {[:integer, :integer], :integer}, {:is_tuple, 1} => {[:tuple], :boolean}, {:is_function, 1} => {[:fun], :boolean}, {:bit_size, 1} => {[:binary], :integer}, {:is_integer, 1} => {[:integer], :boolean}, {:bor, 2} => {[:integer, :integer], :integer}, {:+, 1} => {[:number], :number}, {:is_map_key, 2} => {[:dynamic, {:map, []}], :dynamic}, {:+, 2} => {[:number, :number], :number}, {:"=/=", 2} => {[:dynamic, :dynamic], :boolean}, {:hd, 1} => {[list: :dynamic], :dynamic}, {:xor, 2} => {[:boolean, :boolean], :boolean}, {:>, 2} => {[:dynamic, :dynamic], :boolean}, {:-, 2} => {[:number, :number], :number}, {:==, 2} => {[:dynamic, :dynamic], :boolean}, {:length, 1} => {[list: :dynamic], :integer}, {:is_reference, 1} => {[:reference], :boolean}, {:*, 2} => {[:number, :number], :number}, {:bnot, 1} => {[:integer], :integer}, {:node, 1} => {[union: [:pid, :reference, :port]], :atom}, {:band, 2} => {[:integer, :integer], :integer}, {:bsl, 2} => {[:integer, :integer], :integer}, {:is_float, 1} => {[:float], :boolean}, {:not, 1} => {[:boolean], :boolean}, {:is_pid, 1} => {[:pid], :boolean}, {:is_list, 1} => {[list: :dynamic], :boolean}, {:element, 2} => {[:integer, :tuple], :dynamic}, {:tl, 1} => {[list: :dynamic], :dynamic}, {:is_map, 1} => {[map: []], :boolean}, {:"=:=", 2} => {[:dynamic, :dynamic], :boolean}, {:"/=", 2} => {[:dynamic, :dynamic], :boolean}, {:-, 1} => {[:number], :number}, {:trunc, 1} => {[:number], :integer}, {:"=<", 2} => {[:dynamic, :dynamic], :boolean}, {:abs, 1} => {[:number], :number}, {:bsr, 2} => {[:integer, :integer], :integer}, {:map_size, 1} => {[map: []], :integer}, {:is_binary, 1} => {[:binary], :boolean}, {:div, 2} => {[:integer, :integer], :integer}, {:is_boolean, 1} => {[:boolean], :boolean}, {:is_function, 2} => {[:fun, :integer], :boolean}, {:is_bitstring, 1} => {[:binary], :boolean}, {:binary_part, 3} => {[:binary, :integer, ...], :binary}, {:round, 1} => {[:number], :integer}, {:rem, ...} => {[...], ...}, {...} => {...}, ...}
        (stdlib 3.9.2) :maps.get({:size, 1}, %{{:ceil, 1} => {[:number], :integer}, {:<, 2} => {[:dynamic, :dynamic], :boolean}, {:floor, 1} => {[:number], :integer}, {:byte_size, 1} => {[:binary], :integer}, {:bxor, 2} => {[:integer, :integer], :integer}, {:is_tuple, 1} => {[:tuple], :boolean}, {:is_function, 1} => {[:fun], :boolean}, {:bit_size, 1} => {[:binary], :integer}, {:is_integer, 1} => {[:integer], :boolean}, {:bor, 2} => {[:integer, :integer], :integer}, {:+, 1} => {[:number], :number}, {:is_map_key, 2} => {[:dynamic, {:map, []}], :dynamic}, {:+, 2} => {[:number, :number], :number}, {:"=/=", 2} => {[:dynamic, :dynamic], :boolean}, {:hd, 1} => {[list: :dynamic], :dynamic}, {:xor, 2} => {[:boolean, :boolean], :boolean}, {:>, 2} => {[:dynamic, :dynamic], :boolean}, {:-, 2} => {[:number, :number], :number}, {:==, 2} => {[:dynamic, :dynamic], :boolean}, {:length, 1} => {[list: :dynamic], :integer}, {:is_reference, 1} => {[:reference], :boolean}, {:*, 2} => {[:number, :number], :number}, {:bnot, 1} => {[:integer], :integer}, {:node, 1} => {[union: [:pid, :reference, :port]], :atom}, {:band, 2} => {[:integer, :integer], :integer}, {:bsl, 2} => {[:integer, :integer], :integer}, {:is_float, 1} => {[:float], :boolean}, {:not, 1} => {[:boolean], :boolean}, {:is_pid, 1} => {[:pid], :boolean}, {:is_list, 1} => {[list: :dynamic], :boolean}, {:element, 2} => {[:integer, :tuple], :dynamic}, {:tl, 1} => {[list: :dynamic], :dynamic}, {:is_map, 1} => {[map: []], :boolean}, {:"=:=", 2} => {[:dynamic, :dynamic], :boolean}, {:"/=", 2} => {[:dynamic, :dynamic], :boolean}, {:-, 1} => {[:number], :number}, {:trunc, 1} => {[:number], :integer}, {:"=<", 2} => {[:dynamic, :dynamic], :boolean}, {:abs, 1} => {[:number], :number}, {:bsr, 2} => {[:integer, :integer], :integer}, {:map_size, 1} => {[map: []], :integer}, {:is_binary, 1} => {[:binary], :boolean}, {:div, 2} => {[:integer, :integer], :integer}, {:is_boolean, 1} => {[:boolean], :boolean}, {:is_function, 2} => {[:fun, :integer], :boolean}, {:is_bitstring, 1} => {[:binary], :boolean}, {:binary_part, 3} => {[:binary, :integer, ...], :binary}, {:round, 1} => {[:number], :integer}, {:rem, ...} => {[...], ...}, {...} => {...}, ...})
        (elixir 1.10.0) lib/module/types/pattern.ex:577: Module.Types.Pattern.guard_signature/2
        (elixir 1.10.0) lib/module/types/pattern.ex:344: Module.Types.Pattern.of_guard/3
        (elixir 1.10.0) lib/module/types/helpers.ex:104: Module.Types.Helpers.do_map_reduce_ok/3
        (elixir 1.10.0) lib/module/types/pattern.ex:354: Module.Types.Pattern.of_guard/3
        (elixir 1.10.0) lib/module/types.ex:61: Module.Types.of_head/4
        (elixir 1.10.0) lib/module/types.ex:25: anonymous fn/6 in Module.Types.infer_signatures/3
        (elixir 1.10.0) lib/enum.ex:1396: Enum."-map/2-lists^map/1-0-"/2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions