@@ -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
@@ -888,6 +890,7 @@ defmodule Mix do
888890
889891 if first_build? and restore_dir != nil and not force? do
890892 File . cp_r ( restore_dir , install_project_dir )
893+ remove_dep ( install_project_dir , @ mix_install_app_string )
891894 end
892895
893896 File . mkdir_p! ( install_project_dir )
@@ -991,7 +994,6 @@ defmodule Mix do
991994
992995 defp remove_leftover_deps ( install_project_dir ) do
993996 build_lib_dir = Path . join ( [ install_project_dir , "_build" , "dev" , "lib" ] )
994- deps_dir = Path . join ( install_project_dir , "deps" )
995997
996998 deps = File . ls! ( build_lib_dir )
997999
@@ -1001,16 +1003,23 @@ defmodule Mix do
10011003 do: Atom . to_string ( app )
10021004
10031005 # We want to keep :mix_install, but it has no application
1004- loaded_deps = MapSet . put ( loaded_deps , "mix_install" )
1006+ loaded_deps = MapSet . put ( loaded_deps , @ mix_install_app_string )
10051007
10061008 for dep <- deps , not MapSet . member? ( loaded_deps , dep ) do
1007- build_path = Path . join ( build_lib_dir , dep )
1008- File . rm_rf ( build_path )
1009- dep_path = Path . join ( deps_dir , dep )
1010- File . rm_rf ( dep_path )
1009+ remove_dep ( install_project_dir , dep )
10111010 end
10121011 end
10131012
1013+ defp remove_dep ( install_project_dir , dep ) do
1014+ build_lib_dir = Path . join ( [ install_project_dir , "_build" , "dev" , "lib" ] )
1015+ deps_dir = Path . join ( install_project_dir , "deps" )
1016+
1017+ build_path = Path . join ( build_lib_dir , dep )
1018+ File . rm_rf ( build_path )
1019+ dep_path = Path . join ( deps_dir , dep )
1020+ File . rm_rf ( dep_path )
1021+ end
1022+
10141023 defp install_project_dir ( cache_id ) do
10151024 install_root =
10161025 System . get_env ( "MIX_INSTALL_DIR" ) ||
@@ -1028,7 +1037,7 @@ defmodule Mix do
10281037 build_path: "_build" ,
10291038 lockfile: "mix.lock" ,
10301039 deps_path: "deps" ,
1031- app: :mix_install ,
1040+ app: @ mix_install_app ,
10321041 erlc_paths: [ ] ,
10331042 elixirc_paths: [ ] ,
10341043 compilers: [ ] ,
0 commit comments