File tree Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -123,9 +123,12 @@ defmodule Mix.Dep do
123
123
124
124
defp load_and_cache ( config , _top , bottom , _env ) do
125
125
{ _ , deps } = Mix.ProjectStack . read_cache ( { :cached_deps , bottom } )
126
- apps = [ Keyword . fetch! ( config , :app ) ]
127
- seen = populate_seen ( MapSet . new ( ) , apps )
128
- get_deps ( deps , tl ( Enum . uniq ( get_children ( deps , seen , apps ) ) ) )
126
+ app = Keyword . fetch! ( config , :app )
127
+ top_level = for dep <- deps , dep . app == app , child <- dep . deps , do: child . app
128
+
129
+ seen = populate_seen ( MapSet . new ( ) , [ app ] )
130
+ children = get_deps ( deps , tl ( Enum . uniq ( get_children ( deps , seen , [ app ] ) ) ) )
131
+ Enum . map ( children , & % { & 1 | top_level: & 1 . app in top_level } )
129
132
end
130
133
131
134
defp read_cached_deps ( project , env ) do
Original file line number Diff line number Diff line change @@ -488,6 +488,27 @@ defmodule Mix.DepTest do
488
488
end )
489
489
end
490
490
491
+ test "nested deps with no overrides" do
492
+ # deps_repo brings git_repo but it is overriden
493
+ deps = [
494
+ { :deps_repo , "0.1.0" , path: "custom/deps_repo" }
495
+ ]
496
+
497
+ with_deps ( deps , fn ->
498
+ in_fixture ( "deps_status" , fn ->
499
+ File . mkdir_p! ( "custom/deps_repo/lib" )
500
+
501
+ File . write! ( "custom/deps_repo/lib/a.ex" , """
502
+ # Check that the child dependency is top_level
503
+ [%Mix.Dep{app: :git_repo, top_level: true}] = Mix.Dep.cached()
504
+ """ )
505
+
506
+ Mix.Tasks.Deps.Get . run ( [ ] )
507
+ Mix.Tasks.Deps.Compile . run ( [ ] )
508
+ end )
509
+ end )
510
+ end
511
+
491
512
test "nested deps with overrides" do
492
513
# deps_repo brings git_repo but it is overriden
493
514
deps = [
You can’t perform that action at this time.
0 commit comments