From d34a1b0c1b4b22cc61b5956c07d89517bf278af8 Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Thu, 2 Jul 2020 08:07:56 -0400 Subject: [PATCH] Don't duplicate builder code - Add Builder::new_internal --- src/bootstrap/builder.rs | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index c1e56347ab1..c1c3c2f3ea7 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -501,16 +501,7 @@ pub fn get_help(build: &Build, subcommand: &str) -> Option { _ => return None, }; - let builder = Builder { - build, - top_stage: build.config.stage.unwrap_or(2), - kind, - cache: Cache::new(), - stack: RefCell::new(Vec::new()), - time_spent_on_dependencies: Cell::new(Duration::new(0, 0)), - paths: vec![], - }; - + let builder = Self::new_internal(build, kind, vec![]); let builder = &builder; let mut should_run = ShouldRun::new(builder); for desc in Builder::get_step_descriptions(builder.kind) { @@ -535,6 +526,18 @@ pub fn get_help(build: &Build, subcommand: &str) -> Option { Some(help) } + fn new_internal(build: &Build, kind: Kind, paths: Vec) -> Builder<'_> { + Builder { + build, + top_stage: build.config.stage.unwrap_or(2), + kind, + cache: Cache::new(), + stack: RefCell::new(Vec::new()), + time_spent_on_dependencies: Cell::new(Duration::new(0, 0)), + paths, + } + } + pub fn new(build: &Build) -> Builder<'_> { let (kind, paths) = match build.config.cmd { Subcommand::Build { ref paths } => (Kind::Build, &paths[..]), @@ -550,15 +553,7 @@ pub fn new(build: &Build) -> Builder<'_> { Subcommand::Format { .. } | Subcommand::Clean { .. } => panic!(), }; - Builder { - build, - top_stage: build.config.stage.unwrap_or(2), - kind, - cache: Cache::new(), - stack: RefCell::new(Vec::new()), - time_spent_on_dependencies: Cell::new(Duration::new(0, 0)), - paths: paths.to_owned(), - } + Self::new_internal(build, kind, paths.to_owned()) } pub fn execute_cli(&self) { -- 2.44.0