From d5f31077800026b9dc99a68cecfa3ba6189e2e36 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Fri, 26 Jan 2024 09:01:57 -0800 Subject: [PATCH] 5/n migrating project app data into Project.apps: Buck Summary: As title Reviewed By: michalmuskala Differential Revision: D53130867 fbshipit-source-id: 80c947eeb3206ae7355cccb5fbd9df739649c41b --- crates/elp/tests/slow-tests/buck_tests.rs | 13 ++++++------- crates/project_model/src/buck.rs | 7 +++---- crates/project_model/src/lib.rs | 18 +++++------------- 3 files changed, 14 insertions(+), 24 deletions(-) diff --git a/crates/elp/tests/slow-tests/buck_tests.rs b/crates/elp/tests/slow-tests/buck_tests.rs index b1717727a..0a9ec2701 100644 --- a/crates/elp/tests/slow-tests/buck_tests.rs +++ b/crates/elp/tests/slow-tests/buck_tests.rs @@ -22,7 +22,6 @@ mod tests { use elp_project_model::DiscoverConfig; use elp_project_model::Project; use elp_project_model::ProjectAppData; - use elp_project_model::ProjectBuildData; use elp_project_model::ProjectManifest; use itertools::Itertools; @@ -83,14 +82,14 @@ mod tests { let project = Project::load(&buck_config, elp_config.eqwalizer).unwrap(); - let project = match project.project_build_data { - ProjectBuildData::Buck(project) => project, - _ => panic!("not reachable"), - }; + // let project = match project.project_build_data { + // ProjectBuildData::Buck(project) => project, + // _ => panic!("not reachable"), + // }; let project_data: Vec = project - .project_app_data - .into_iter() + .apps() + .cloned() .filter(|app| app.app_type == AppType::App) .filter(|app| { !app.dir diff --git a/crates/project_model/src/buck.rs b/crates/project_model/src/buck.rs index 8acd572da..863fa620a 100644 --- a/crates/project_model/src/buck.rs +++ b/crates/project_model/src/buck.rs @@ -157,14 +157,14 @@ pub struct TargetInfo { #[derive(Clone, Debug, PartialEq, Eq)] pub struct BuckProject { pub target_info: TargetInfo, - pub project_app_data: Vec, + // pub project_app_data: Vec, pub buck_conf: BuckConfig, } impl BuckProject { pub fn load_from_config( buck_conf: &BuckConfig, - ) -> Result<(BuckProject, BuildInfoFile, PathBuf), anyhow::Error> { + ) -> Result<(BuckProject, Vec, BuildInfoFile, PathBuf), anyhow::Error> { let target_info = load_buck_targets(buck_conf)?; let otp_root = Otp::find_otp()?; let project_app_data = targets_to_project_data(&target_info.targets, &otp_root); @@ -172,10 +172,9 @@ impl BuckProject { let build_info = save_build_info(build_info_term)?; let project = BuckProject { target_info, - project_app_data, buck_conf: buck_conf.clone(), }; - Ok((project, build_info, otp_root)) + Ok((project, project_app_data, build_info, otp_root)) } } diff --git a/crates/project_model/src/lib.rs b/crates/project_model/src/lib.rs index c0dfed6b8..d2437a8b2 100644 --- a/crates/project_model/src/lib.rs +++ b/crates/project_model/src/lib.rs @@ -432,16 +432,14 @@ impl Project { match &self.project_build_data { ProjectBuildData::Otp => Either::Left(Either::Left(self.otp_apps())), // Which be all project_apps ProjectBuildData::Rebar(_) => Either::Left(Either::Right(self.apps())), - ProjectBuildData::Buck(buck) => { - Either::Right(Either::Left(buck.project_app_data.iter())) - } + ProjectBuildData::Buck(_) => Either::Right(Either::Left(self.apps())), ProjectBuildData::Static(stat) => { Either::Right(Either::Right(stat.apps.iter().chain(stat.deps.iter()))) } } } - fn apps(&self) -> impl Iterator + '_ { + pub fn apps(&self) -> impl Iterator + '_ { self.project_apps .iter() .filter(|app| app.app_type != AppType::Otp) @@ -488,13 +486,7 @@ impl Project { match &self.project_build_data { ProjectBuildData::Otp => vec![], ProjectBuildData::Rebar(_) => self.deps().flat_map(|app| app.ebin.clone()).collect(), - ProjectBuildData::Buck(buck) => buck - .target_info - .targets - .values() - .flat_map(|target| &target.ebin) - .cloned() - .collect(), + ProjectBuildData::Buck(_) => self.deps().flat_map(|app| app.ebin.clone()).collect(), ProjectBuildData::Static(stat) => stat .deps .iter() @@ -699,10 +691,10 @@ impl Project { } ProjectManifest::TomlBuck(buck) => { // We only select this manifest if buck is actually enabled - let (project, build_info, otp_root) = BuckProject::load_from_config(buck)?; + let (project, apps, build_info, otp_root) = BuckProject::load_from_config(buck)?; ( ProjectBuildData::Buck(project), - vec![], + apps, Some(build_info), otp_root, )