Skip to content

Commit

Permalink
5/n migrating project app data into Project.apps: Buck
Browse files Browse the repository at this point in the history
Summary: As title

Reviewed By: michalmuskala

Differential Revision: D53130867

fbshipit-source-id: 80c947eeb3206ae7355cccb5fbd9df739649c41b
  • Loading branch information
alanz authored and facebook-github-bot committed Jan 26, 2024
1 parent 4001dc0 commit d5f3107
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 24 deletions.
13 changes: 6 additions & 7 deletions crates/elp/tests/slow-tests/buck_tests.rs
Expand Up @@ -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;

Expand Down Expand Up @@ -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<ProjectAppData> = project
.project_app_data
.into_iter()
.apps()
.cloned()
.filter(|app| app.app_type == AppType::App)
.filter(|app| {
!app.dir
Expand Down
7 changes: 3 additions & 4 deletions crates/project_model/src/buck.rs
Expand Up @@ -157,25 +157,24 @@ pub struct TargetInfo {
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct BuckProject {
pub target_info: TargetInfo,
pub project_app_data: Vec<ProjectAppData>,
// pub project_app_data: Vec<ProjectAppData>,
pub buck_conf: BuckConfig,
}

impl BuckProject {
pub fn load_from_config(
buck_conf: &BuckConfig,
) -> Result<(BuckProject, BuildInfoFile, PathBuf), anyhow::Error> {
) -> Result<(BuckProject, Vec<ProjectAppData>, 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);
let build_info_term = build_info(buck_conf, &project_app_data, &otp_root);
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))
}
}

Expand Down
18 changes: 5 additions & 13 deletions crates/project_model/src/lib.rs
Expand Up @@ -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<Item = &ProjectAppData> + '_ {
pub fn apps(&self) -> impl Iterator<Item = &ProjectAppData> + '_ {
self.project_apps
.iter()
.filter(|app| app.app_type != AppType::Otp)
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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,
)
Expand Down

0 comments on commit d5f3107

Please sign in to comment.