Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Partial failure to handle Elixir 1.15-dev. Omens of incompatibility! #478

Open
cognivore opened this issue Feb 26, 2023 · 6 comments
Open

Comments

@cognivore
Copy link

cognivore commented Feb 26, 2023

Precheck

  • Take a look at the open issues and be sure that your issue is not already covered.
  • Be sure your versions of Dialyxir and Erlex are up to date.

Environment

  • Elixir & Erlang/OTP versions (elixir --version):
λ elixir --version
Erlang/OTP 25 [erts-13.1.5] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit:ns]

Elixir 1.15.0-dev (compiled with Erlang/OTP 25)

Installed into the system with nix from this commit.

  • Which version of Dialyxir are you using? (cat mix.lock | grep dialyxir):
λ cat mix.lock | grep dialyxir
  "dialyxir": {:hex, :dialyxir, "1.2.0", "58344b3e87c2e7095304c81a9ae65cb68b613e28340690dfe1a5597fd08dec37", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "61072136427a851674cab81762be4dbeae7679f85b1272b6d25c3a839aff8463"},

Current behavior

Dialyzer works but it displays a huge wall of errors while building PLTs / being ran the first time.

They are of three problems types:

  1. prettyptr not found
  2. "wrong ets table":
  3. Enum.reduce/3 is not a function and String.t/0 is not a type (it means that Elixir wasn't dialyzed?!)
==> operator
Compiling 2 files (.ex)
Generated operator app
==> quark
Compiling 10 files (.ex)
Generated quark app
==> exceptional
Compiling 8 files (.ex)
Generated exceptional app
==> type_class_goo
Compiling 9 files (.ex)
Generated type_class_goo app
==> witchcraft_goo
Compiling 31 files (.ex)
Generated witchcraft_goo app
==> algae_goo
Compiling 63 files (.ex)
Generated algae_goo app
==> erlex
Compiling 1 file (.yrl)
src/parser.yrl: Warning: conflicts: 27 shift/reduce, 0 reduce/reduce
Compiling 1 file (.xrl)
Compiling 2 files (.erl)
Compiling 1 file (.ex)
Generated erlex app
==> dialyxir
Compiling 64 files (.ex)
Generated dialyxir app
==> etypes
Compiling 4 files (.ex)
Generated etypes app
Finding suitable PLTs
Checking PLT...
[:algae_goo, :compiler, :elixir, :exceptional, :kernel, :logger, :operator, :quark, :stdlib, :type_class_goo, :witchcraft_goo]
Looking up modules in dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt
Looking up modules in dialyxir_erlang-25.2.3_elixir-1.15.0-dev.plt
Finding applications for dialyxir_erlang-25.2.3_elixir-1.15.0-dev.plt
Finding modules for dialyxir_erlang-25.2.3_elixir-1.15.0-dev.plt
Removing 18 modules from dialyxir_erlang-25.2.3_elixir-1.15.0-dev.plt

13:49:33.145 [error] Process #PID<0.13936.0> raised an exception
** (UndefinedFunctionError) function :prettypr.text/1 is undefined (module :prettypr is not available)
    :prettypr.text(~c"'true'")
    (dialyzer 5.0.4) cerl_prettypr.erl:401: :cerl_prettypr.lay_ann/2
    (dialyzer 5.0.4) cerl_prettypr.erl:261: :cerl_prettypr.format/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2478: :dialyzer_dataflow.signal_guard_failure/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1712: :dialyzer_dataflow.bind_guard/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1268: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:33.145 [error] Process #PID<0.13934.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 1385993)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:186: :dialyzer_dataflow.analyze_loop/1

13:49:33.145 [error] Process #PID<0.13944.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 1174064)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:926: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:33.145 [error] Process #PID<0.14045.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 666275)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:926: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:33.145 [error] Process #PID<0.14068.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 732760)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:976: :dialyzer_dataflow.handle_let/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:33.146 [error] Process #PID<0.14041.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 968307)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:926: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:33.147 [error] Process #PID<0.13949.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 1209305)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:33.148 [error] Process #PID<0.13948.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 1236178)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:33.148 [error] Process #PID<0.13933.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 1290939)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:33.149 [error] Process #PID<0.14061.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 745701)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:33.150 [error] Process #PID<0.13996.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 219827)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:33.177 [error] Process #PID<0.13935.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.86154>, 1939547)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1
Checking 185 modules in dialyxir_erlang-25.2.3_elixir-1.15.0-dev.plt
Adding 255 modules to dialyxir_erlang-25.2.3_elixir-1.15.0-dev.plt

13:49:40.953 [error] Process #PID<0.21103.0> raised an exception
** (UndefinedFunctionError) function :prettypr.text/1 is undefined (module :prettypr is not available)
    :prettypr.text(~c"'false'")
    (dialyzer 5.0.4) cerl_prettypr.erl:401: :cerl_prettypr.lay_ann/2
    (dialyzer 5.0.4) cerl_prettypr.erl:261: :cerl_prettypr.format/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2478: :dialyzer_dataflow.signal_guard_failure/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2534: :dialyzer_dataflow.bind_guard_case_clauses/11
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1811: :dialyzer_dataflow.bind_guard/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2217: :dialyzer_dataflow.bind_eqeq_guard_lit_other/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1811: :dialyzer_dataflow.bind_guard/5

13:49:40.953 [error] Process #PID<0.21102.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 440079)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:186: :dialyzer_dataflow.analyze_loop/1

13:49:40.953 [error] Process #PID<0.21098.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 899137)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:926: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:40.953 [error] Process #PID<0.21334.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 609784)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:976: :dialyzer_dataflow.handle_let/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:40.953 [error] Process #PID<0.21298.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 131910)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:40.953 [error] Process #PID<0.21141.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 685555)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:976: :dialyzer_dataflow.handle_let/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:40.954 [error] Process #PID<0.21120.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 708578)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:40.955 [error] Process #PID<0.21099.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 818543)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:40.956 [error] Process #PID<0.21104.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 339748)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:40.956 [error] Process #PID<0.21100.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 710423)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:40.959 [error] Process #PID<0.21121.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 833121)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:40.968 [error] Process #PID<0.21117.0> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.91800>, 920386)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1
done in 0m7.29s
Finding applications for dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt
Finding modules for dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt
Copying dialyxir_erlang-25.2.3_elixir-1.15.0-dev.plt to dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt
Looking up modules in dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt
Removing 18 modules from dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt

13:49:49.768 [error] Process #PID<0.47.1> raised an exception
** (UndefinedFunctionError) function :prettypr.text/1 is undefined (module :prettypr is not available)
    :prettypr.text(~c"'true'")
    (dialyzer 5.0.4) cerl_prettypr.erl:401: :cerl_prettypr.lay_ann/2
    (dialyzer 5.0.4) cerl_prettypr.erl:261: :cerl_prettypr.format/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2478: :dialyzer_dataflow.signal_guard_failure/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1712: :dialyzer_dataflow.bind_guard/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1268: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:49.768 [error] Process #PID<0.45.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 1428479)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:49.768 [error] Process #PID<0.152.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 1143750)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:926: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:49.768 [error] Process #PID<0.156.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 608993)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:926: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:49.768 [error] Process #PID<0.55.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 1216861)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7

13:49:49.768 [error] Process #PID<0.179.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 659393)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:186: :dialyzer_dataflow.analyze_loop/1

13:49:49.769 [error] Process #PID<0.44.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 1409631)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:976: :dialyzer_dataflow.handle_let/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:49:49.770 [error] Process #PID<0.52.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 933556)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:49.770 [error] Process #PID<0.107.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 134441)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:49.771 [error] Process #PID<0.54.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 1032353)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:49:49.781 [error] Process #PID<0.65.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.95140>, 1702852)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1
Checking 185 modules in dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt
Adding 628 modules to dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt

13:50:07.475 [error] Process #PID<0.27352.1> raised an exception
** (UndefinedFunctionError) function :prettypr.text/1 is undefined (module :prettypr is not available)
    :prettypr.text(~c"'desc'")
    (dialyzer 5.0.4) cerl_prettypr.erl:401: :cerl_prettypr.lay_ann/2
    (dialyzer 5.0.4) cerl_prettypr.erl:261: :cerl_prettypr.format/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2478: :dialyzer_dataflow.signal_guard_failure/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1712: :dialyzer_dataflow.bind_guard/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1268: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:50:07.476 [error] Process #PID<0.27354.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 3054161)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:544: :dialyzer_dataflow.handle_apply_or_call/10
    (dialyzer 5.0.4) dialyzer_dataflow.erl:340: :dialyzer_dataflow.handle_apply/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:976: :dialyzer_dataflow.handle_let/3
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1276: :dialyzer_dataflow.do_clause/7
    (dialyzer 5.0.4) dialyzer_dataflow.erl:1199: :dialyzer_dataflow.handle_clauses/9
    (dialyzer 5.0.4) dialyzer_dataflow.erl:932: :dialyzer_dataflow.handle_case/3

13:50:07.477 [error] Process #PID<0.27353.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 2586378)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.482 [error] Process #PID<0.27355.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 3323958)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.488 [error] Process #PID<0.27356.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 1916700)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.491 [error] Process #PID<0.27357.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 2882187)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.514 [error] Process #PID<0.27358.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 2190531)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.516 [error] Process #PID<0.27361.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 3405299)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.516 [error] Process #PID<0.27375.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 3371659)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.517 [error] Process #PID<0.27359.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 712989)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.518 [error] Process #PID<0.27377.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 2663341)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1

13:50:07.519 [error] Process #PID<0.27360.1> raised an exception
** (ArgumentError) errors were found at the given arguments:

  * 1st argument: the table identifier does not refer to an existing ETS table

    (stdlib 4.2) :ets.lookup(#Reference<0.3442561781.226361345.106226>, 556833)
    (dialyzer 5.0.4) dialyzer_callgraph.erl:356: :dialyzer_callgraph.ets_lookup_set/2
    (dialyzer 5.0.4) dialyzer_dataflow.erl:3123: :dialyzer_dataflow.init_fun_tab/5
    (dialyzer 5.0.4) dialyzer_dataflow.erl:2889: :dialyzer_dataflow.state__new/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:149: :dialyzer_dataflow.analyze_module/6
    (dialyzer 5.0.4) dialyzer_dataflow.erl:136: :dialyzer_dataflow.get_fun_types/5
    (dialyzer 5.0.4) dialyzer_succ_typings.erl:162: :dialyzer_succ_typings.refine_one_module/2
    (dialyzer 5.0.4) dialyzer_worker.erl:70: :dialyzer_worker.run/1
done in 0m17.23s
No :ignore_warnings opt specified in mix.exs and default does not exist.

Starting Dialyzer
[
  check_plt: false,
  init_plt: ~c"/home/sweater/github/etypes/_build/dev/dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt",
  files: [~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Etypes.Types.beam",
   ~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Etypes.beam",
   ~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Lambda.beam",
   ~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Phantom.beam"],
  warnings: [:unknown]
]
Total errors: 5, Skipped: 0, Unnecessary Skips: 0
done in 0m0.55s

As you see even the first time in this particular project, dialyzer run happens, later on it's business as usual:

Finding suitable PLTs
Checking PLT...
[:algae_goo, :compiler, :elixir, :exceptional, :kernel, :logger, :operator, :quark, :stdlib, :type_class_goo, :witchcraft_goo]
PLT is up to date!
No :ignore_warnings opt specified in mix.exs and default does not exist.

Starting Dialyzer
[
  check_plt: false,
  init_plt: ~c"/home/sweater/github/etypes/_build/dev/dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt",
  files: [~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Etypes.Types.beam",
   ~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Etypes.beam",
   ~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Lambda.beam",
   ~c"/home/sweater/github/etypes/_build/dev/lib/etypes/ebin/Elixir.Phantom.beam"],
  warnings: [:unknown]
]
Total errors: 5, Skipped: 0, Unnecessary Skips: 0
done in 0m0.58s
lib/phantom.ex:0:unknown_function
Function Enum.reduce/3 does not exist.
________________________________________________________________________________
lib/etypes/types.ex:7:unknown_type
Unknown type: String.t/0.
________________________________________________________________________________
lib/etypes.ex:13:invalid_contract
The @spec for the function does not match the success typing of the function.

Function:
Etypes.brokenMaybe/1

Success typing:
@spec brokenMaybe(_) :: <<_::296>>

________________________________________________________________________________
lib/etypes.ex:37:no_return
Function hello/0 has no local return.
________________________________________________________________________________
lib/etypes.ex:40:call
The function call will not succeed.

Etypes.brokenArgument(-3)

breaks the contract
(t) :: Etypes.Types.comaybe(t) when t: non_neg_integer()

________________________________________________________________________________
done (warnings were emitted)
Halting VM with exit status 2

In another project, however, it won't run at all:

Generated witchcraft_goo app
Finding suitable PLTs
Checking PLT...
[:benchfella, :compiler, :elixir, :exceptional, :kernel, :logger, :operator, :quark, :stdlib, :type_class_goo]
PLT is up to date!
No :ignore_warnings opt specified in mix.exs and default does not exist.

Starting Dialyzer
[
  check_plt: false,
  init_plt: ~c"/home/sweater/github/witchcraft-goo/_build/dev/dialyxir_erlang-25.2.3_elixir-1.15.0-dev_deps-dev.plt",
  files: [~c"/home/sweater/github/witchcraft-goo/_build/dev/lib/witchcraft_goo/ebin/Elixir.Witchcraft.Chain.Proto.Function.beam",
   ~c"/home/sweater/github/witchcraft-goo/_build/dev/lib/witchcraft_goo/ebin/Elixir.Witchcraft.Extend.beam",
   ~c"/home/sweater/github/witchcraft-goo/_build/dev/lib/witchcraft_goo/ebin/Elixir.Witchcraft.Extend.Proto.Tuple.beam",
   ~c"/home/sweater/github/witchcraft-goo/_build/dev/lib/witchcraft_goo/ebin/Elixir.Witchcraft.Foldable.Property.beam",
   ~c"/home/sweater/github/witchcraft-goo/_build/dev/lib/witchcraft_goo/ebin/Elixir.Witchcraft.Unit.beam",
   ...],
  warnings: [:unknown]
]
:dialyzer.run error: Analysis failed with error:
{undef,[{prettypr,text,["'false'"],[]},
        {cerl_prettypr,lay_ann,2,[{file,"cerl_prettypr.erl"},{line,401}]},
        {cerl_prettypr,format,2,[{file,"cerl_prettypr.erl"},{line,261}]},
        {dialyzer_dataflow,signal_guard_failure,5,
                           [{file,"dialyzer_dataflow.erl"},{line,2478}]},
        {dialyzer_dataflow,bind_guard_case_clauses,11,
                           [{file,"dialyzer_dataflow.erl"},{line,2534}]},
        {dialyzer_dataflow,bind_guard,5,
                           [{file,"dialyzer_dataflow.erl"},{line,1811}]},
        {dialyzer_dataflow,bind_eqeq_guard_lit_other,6,
                           [{file,"dialyzer_dataflow.erl"},{line,2217}]},
        {dialyzer_dataflow,bind_guard,5,
                           [{file,"dialyzer_dataflow.erl"},{line,1811}]}]}
Last messages in the log cache:
  Reading files and computing callgraph... done in 0.10 secs
  Removing edges... done in 0.02 secs
Halting VM with exit status 1

Expected behavior

  • A short description of the expected behavior.

It's expected that dialyxir either crashes catastrofically on both projects, signaling incompatibility with 1.15-dev, or works correctly, returning the results.

@jeremyjh
Copy link
Owner

I can recreate it with asdf on main-otp-25. It is not only dialyzer. There is some change or problem with how some core OTP applications are found. I also get an error about erts not being found.

If you launch iex -S mix and run prettypr.text('hi') you will indeed get an error that the module is missing. With that same version of OTP on Elixir 1.14.3 you get the expected output.

Elixir 14:

iex(8)> :prettypr.text('hi')
{:text, [2, 104, 105]}

Elixir main-otp25:

iex(2)> :prettypr.text('hi')
** (UndefinedFunctionError) function :prettypr.text/1 is undefined (module :prettypr is not available)
    :prettypr.text(~c"hi")

@cognivore
Copy link
Author

It's a bit peculiar, as in erl, it works! Good to know that asdf has a similar problem though. But it's very confusing nonetheless. I'm 100% sure that my Elixir is built with literally this particular version of Erlang...

Mon Feb 27 14:22:15:684253100 sweater@conflagrate ~/github/etypes (main)
λ iex -S mix
Erlang/OTP 25 [erts-13.1.5] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit:ns]

Interactive Elixir (1.15.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :prettypr.text('hi')
** (UndefinedFunctionError) function :prettypr.text/1 is undefined (module :prettypr is not available)
    :prettypr.text(~c"hi")
    iex:1: (file)
iex(1)> :prettypr.module_info()
** (UndefinedFunctionError) function :prettypr.module_info/0 is undefined (module :prettypr is not available)
    :prettypr.module_info()
    iex:1: (file)
iex(1)>
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
       (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution
a
Mon Feb 27 14:22:39:360718800 sweater@conflagrate ~/github/etypes (main)
λ erl
Erlang/OTP 25 [erts-13.1.5] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit:ns]

Eshell V13.1.5  (abort with ^G)
1> prettypr:text("hi").
{text,[2,104,105]}
2>

@cognivore
Copy link
Author

FWIW, I'm trying to manually build up some PLTs and run dialyzer afterwards in this set up.

@jeremyjh
Copy link
Owner

@cognivore We needed to add some dependencies to extra_applications. can you try with dialyxir master now?

@cognivore
Copy link
Author

cognivore commented Feb 27, 2023 via email

@cognivore
Copy link
Author

cognivore commented Feb 27, 2023

@jeremyjh you fixed it so quickly! It's so much appreciated. It indeed works with the latest commit in upstream! Thank you!

P.S.

I've confirmed that this works on real projects too. I think this can be closed.

sgerrand added a commit to sgerrand/paginator that referenced this issue Mar 15, 2024
Elixir versions >= 1.15 seem to be unable to find the :prettypr module,
causing errors like the following:

```
Finding applications for dialyxir_erlang-25.3.2.10.plt
Finding modules for dialyxir_erlang-25.3.2.10.plt
Creating dialyxir_erlang-25.3.2.10.plt
:dialyzer.run error: Analysis failed with error:
Looking up modules in dialyxir_erlang-25.3.2.10.plt
{undef,[{prettypr,text,["'undefined'"],[]},
        {cerl_prettypr,lay_ann,2,[{file,"cerl_prettypr.erl"},{line,401}]},
        {cerl_prettypr,format,2,[{file,"cerl_prettypr.erl"},{line,261}]},
        {dialyzer_dataflow,signal_guard_failure,5,
                           [{file,"dialyzer_dataflow.erl"},{line,2478}]},
        {dialyzer_dataflow,bind_guard,5,
                           [{file,"dialyzer_dataflow.erl"},{line,1811}]},
        {dialyzer_dataflow,handle_guard_and,5,
                           [{file,"dialyzer_dataflow.erl"},{line,2254}]},
        {dialyzer_dataflow,bind_guard,3,
                           [{file,"dialyzer_dataflow.erl"},{line,1712}]},
        {dialyzer_dataflow,do_clause,7,
                           [{file,"dialyzer_dataflow.erl"},{line,1268}]}]}
```

See: jeremyjh/dialyxir#478
sgerrand added a commit to sgerrand/paginator that referenced this issue May 29, 2024
Elixir versions >= 1.15 seem to be unable to find the :prettypr module,
causing errors like the following:

```
Finding applications for dialyxir_erlang-25.3.2.10.plt
Finding modules for dialyxir_erlang-25.3.2.10.plt
Creating dialyxir_erlang-25.3.2.10.plt
:dialyzer.run error: Analysis failed with error:
Looking up modules in dialyxir_erlang-25.3.2.10.plt
{undef,[{prettypr,text,["'undefined'"],[]},
        {cerl_prettypr,lay_ann,2,[{file,"cerl_prettypr.erl"},{line,401}]},
        {cerl_prettypr,format,2,[{file,"cerl_prettypr.erl"},{line,261}]},
        {dialyzer_dataflow,signal_guard_failure,5,
                           [{file,"dialyzer_dataflow.erl"},{line,2478}]},
        {dialyzer_dataflow,bind_guard,5,
                           [{file,"dialyzer_dataflow.erl"},{line,1811}]},
        {dialyzer_dataflow,handle_guard_and,5,
                           [{file,"dialyzer_dataflow.erl"},{line,2254}]},
        {dialyzer_dataflow,bind_guard,3,
                           [{file,"dialyzer_dataflow.erl"},{line,1712}]},
        {dialyzer_dataflow,do_clause,7,
                           [{file,"dialyzer_dataflow.erl"},{line,1268}]}]}
```

See: jeremyjh/dialyxir#478
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants