summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2019-02-20 10:39:04 +0100
committerJosé Valim <jose.valim@plataformatec.com.br>2019-02-20 10:39:07 +0100
commit7afbdae53cc55d8383d0ac84966f99c6f09d854e (patch)
tree8aff59bea6437017a4eac586ee3f5d587f0e81c0
parent4f819651eb3065f51369ba692a2e4a7592ec3bc3 (diff)
downloadelixir-7afbdae53cc55d8383d0ac84966f99c6f09d854e.tar.gz
Improve error message when deps.loadpaths/loadpaths/compile has not run
Closes #8803.
-rw-r--r--lib/mix/lib/mix/dep.ex6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/mix/lib/mix/dep.ex b/lib/mix/lib/mix/dep.ex
index 7c189f36e..a915e1a1f 100644
--- a/lib/mix/lib/mix/dep.ex
+++ b/lib/mix/lib/mix/dep.ex
@@ -123,7 +123,11 @@ defmodule Mix.Dep do
end
defp load_and_cache(config, _top, bottom, _env, _target) do
- {_, deps} = Mix.ProjectStack.read_cache({:cached_deps, bottom})
+ {_, deps} =
+ Mix.ProjectStack.read_cache({:cached_deps, bottom}) ||
+ raise "cannot retrieve dependencies information because dependencies were not loaded. " <>
+ "Please invoke one of \"deps.loadpaths\", \"loadpaths\", or \"compile\" Mix task"
+
app = Keyword.fetch!(config, :app)
seen = populate_seen(MapSet.new(), [app])
children = get_deps(deps, tl(Enum.uniq(get_children(deps, seen, [app]))))