@@ -377,6 +377,8 @@ defmodule Mix do
377377 """
378378
379379 @ mix_install_project __MODULE__ . InstallProject
380+ @ mix_install_app :mix_install
381+ @ mix_install_app_string Atom . to_string ( @ mix_install_app )
380382
381383 use Application
382384
@@ -893,6 +895,7 @@ defmodule Mix do
893895
894896 if first_build? and restore_dir != nil and not force? do
895897 File . cp_r ( restore_dir , install_project_dir )
898+ remove_dep ( install_project_dir , @ mix_install_app_string )
896899 end
897900
898901 File . mkdir_p! ( install_project_dir )
@@ -996,7 +999,6 @@ defmodule Mix do
996999
9971000 defp remove_leftover_deps ( install_project_dir ) do
9981001 build_lib_dir = Path . join ( [ install_project_dir , "_build" , "dev" , "lib" ] )
999- deps_dir = Path . join ( install_project_dir , "deps" )
10001002
10011003 deps = File . ls! ( build_lib_dir )
10021004
@@ -1006,16 +1008,23 @@ defmodule Mix do
10061008 do: Atom . to_string ( app )
10071009
10081010 # We want to keep :mix_install, but it has no application
1009- loaded_deps = MapSet . put ( loaded_deps , "mix_install" )
1011+ loaded_deps = MapSet . put ( loaded_deps , @ mix_install_app_string )
10101012
10111013 for dep <- deps , not MapSet . member? ( loaded_deps , dep ) do
1012- build_path = Path . join ( build_lib_dir , dep )
1013- File . rm_rf ( build_path )
1014- dep_path = Path . join ( deps_dir , dep )
1015- File . rm_rf ( dep_path )
1014+ remove_dep ( install_project_dir , dep )
10161015 end
10171016 end
10181017
1018+ defp remove_dep ( install_project_dir , dep ) do
1019+ build_lib_dir = Path . join ( [ install_project_dir , "_build" , "dev" , "lib" ] )
1020+ deps_dir = Path . join ( install_project_dir , "deps" )
1021+
1022+ build_path = Path . join ( build_lib_dir , dep )
1023+ File . rm_rf ( build_path )
1024+ dep_path = Path . join ( deps_dir , dep )
1025+ File . rm_rf ( dep_path )
1026+ end
1027+
10191028 defp install_project_dir ( cache_id ) do
10201029 install_root =
10211030 System . get_env ( "MIX_INSTALL_DIR" ) ||
@@ -1033,7 +1042,7 @@ defmodule Mix do
10331042 build_path: "_build" ,
10341043 lockfile: "mix.lock" ,
10351044 deps_path: "deps" ,
1036- app: :mix_install ,
1045+ app: @ mix_install_app ,
10371046 erlc_paths: [ ] ,
10381047 elixirc_paths: [ ] ,
10391048 compilers: [ ] ,
0 commit comments