script
Dialyxir warning about unknown functions
I added dialyxir in my umbrella application root .its rc version
{:dialyxir, "~> 1.0.0-rc.4", only: [:dev], runtime: false}
And in my project list i added plt like this:
dialyzer: [plt_add_deps: :transitive]
When I run mix dialyzer . It gives me lots and lots of warnings about unknown functions and plugs and other stuff:
Starting Dialyzer
[
check_plt: false,
init_plt: '/Volumes/Data/Work/haitracker-be/_build/dev/dialyxir_erlang-21.0.3_elixir-1.7.4_deps-
dev.plt',
files_rec: ['/Volumes/Data/Work/haitracker-be/_build/dev/lib/api/ebin',
'/Volumes/Data/Work/haitracker-be/_build/dev/lib/admin_api/ebin',
'/Volumes/Data/Work/haitracker-be/_build/dev/lib/core/ebin',
'/Volumes/Data/Work/haitracker-be/_build/dev/lib/utils/ebin',
'/Volumes/Data/Work/haitracker-be/_build/dev/lib/data/ebin',
'/Volumes/Data/Work/haitracker-be/apps/fat_ecto/_build/dev/lib/fat_ecto/ebin'],
warnings: [:unknown]
]
Total errors: 552, Skipped: 0, Unnecessary Skips: 0
done in 0m10.83s
:0:unknown_function
Function Access.get/3 does not exist.
________________________________________________________________________________
:0:unknown_function
Function Agent.get/2 does not exist.
________________________________________________________________________________
:0:unknown_function
Function Agent.start_link/2 does not exist.
________________________________________________________________________________
:0:unknown_function
Function Agent.stop/1 does not exist.
________________________________________________________________________________
:0:unknown_function
Function Application.ensure_all_started/1 does not exist.
________________________________________________________________________________
:0:unknown_function
Function Application.fetch_env!/2 does not exist.
________________________________________________________________________________
:0:unknown_function
Function Application.get_env/2 does not exist.
________________________________________________________________________________
:0:unknown_function
`Preformatted text`Function Application.get_env/3 does not exist.
________________________________________________________________________________
:0:unknown_function
Function Application.spec/1 does not exist.
________________________________________________________________________________
:0:unknown_function
Function ArgumentError.exception/1 does not exist.
________________________________________
:0:unknown_function
Function Ecto.assoc/2 does not exist.
________________________________________________________________________________
apps/admin_api/lib/controllers/room_admin_controller.ex:1:callback_info_missing
Callback info about the Plug behaviour is not available.
________________________________________________________________________________
apps/admin_api/lib/controllers/room_unit_admin_controller.ex:1:callback_info_missing
Callback info about the Plug behaviour is not available.
________________________________________________________________________________
apps/admin_api/lib/controllers/unit_admin_controller.ex:1:callback_info_missing
Callback info about the Plug behaviour is not available.
________________________________________________________________________________
apps/admin_api/lib/controllers/user_admin_controller.ex:1:callback_info_missing
Callback info about the Plug behaviour is not available.
________________________________________________________________________________
apps/admin_api/lib/gettext.ex:1:callback_info_missing
Callback info about the Gettext.Backend behaviour is not available.
________________________________________________________________________________
These are the few from the complete log.
There are errors about callback missing. What does it expect for a callback?
I tried changing dialyzer: [plt_add_deps: :project]. But nothing seems to be working.
Any helps suggestions will be much appreciated.
Thanks
Most Liked
jeremyjh
This is a known issue, the ASDF builds for 1.7 are done with OTP 20 by default, you are using 21. So you need to specify in the asdf command line or your .tool-versions elixir 1.7.4-otp-21
NobbZ
This looks as if you were using a pretty recent erlang but a prebuilt elixir. Please use a prebuilt elixir that matches your erlang version asdf install elixir 1.7.x-otp-2y IIRC, of course you have to replace x and y with the proper values…
The reason for this problems is a change of how dialyzer stored its meta data in the BEAM file since OTP 20. It has been discussed a couple of times in the forum.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








