W0090: Unavailable Module
Error
-module(main).
main(F) ->
app_c:F().
%%^^^^^ warning: W0090: The module 'app_c' is defined in application 'app_c', but the application is not a dependency of 'app_a' (defined in 'cell//app_a:lib').
Explanation
This diagnostic warns you when a call names a module which does exist, but which lives in an application that your application does not declare as a dependency, and the call does not name the function it calls.
It is the module-level counterpart of W0085, and checks the same
calls as W0089: remote calls and function references whose
function name is not an atom, and dynamic calls such as apply/3. Calls that
name both the module and the function are checked by W0085.
What This Diagnostic Checks
An application is considered reachable when it is the caller's own application, an OTP application, or reachable through the caller's declared dependencies.
The dependency relation is derived from the build system, and is currently only available for Buck projects. For other project models the diagnostic does not fire.
How to Fix
- Add the application that defines the module to your application's dependencies
- Or move the code so that the call originates from an application that already declares the dependency