summaryrefslogtreecommitdiff
path: root/src/bootstrap/builder.rs
diff options
context:
space:
mode:
authorjyn <github@jyn.dev>2023-06-04 21:40:05 -0500
committerjyn <github@jyn.dev>2023-06-04 23:15:22 -0500
commitc73c5dd35fa8171ba1634bf9111073706ccf993a (patch)
treeed18f73e0a65504ebc2a34b760ba176db7e9845d /src/bootstrap/builder.rs
parent1205e6cff3b2df4ed8465aa1f4f4b3f8e230b7a3 (diff)
cleanup now that Kind is no longer used for excludes
Diffstat (limited to 'src/bootstrap/builder.rs')
-rw-r--r--src/bootstrap/builder.rs45
1 files changed, 9 insertions, 36 deletions
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
index 5bdba28158a..1acf522eeab 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
@@ -8,7 +8,7 @@ use std::fs::{self, File};
use std::hash::Hash;
use std::io::{BufRead, BufReader};
use std::ops::Deref;
-use std::path::{Component, Path, PathBuf};
+use std::path::{Path, PathBuf};
use std::process::Command;
use std::time::{Duration, Instant};
@@ -150,29 +150,6 @@ pub struct TaskPath {
pub kind: Option<Kind>,
}
-impl TaskPath {
- pub fn parse(path: impl Into<PathBuf>) -> TaskPath {
- let mut kind = None;
- let mut path = path.into();
-
- let mut components = path.components();
- if let Some(Component::Normal(os_str)) = components.next() {
- if let Some(str) = os_str.to_str() {
- if let Some((found_kind, found_prefix)) = str.split_once("::") {
- if found_kind.is_empty() {
- panic!("empty kind in task path {}", path.display());
- }
- kind = Kind::parse(found_kind);
- assert!(kind.is_some());
- path = Path::new(found_prefix).join(components.as_path());
- }
- }
- }
-
- TaskPath { path, kind }
- }
-}
-
impl Debug for TaskPath {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
if let Some(kind) = &self.kind {
@@ -216,7 +193,7 @@ impl PathSet {
PathSet::Set(set)
}
- fn has(&self, needle: &Path, module: Option<Kind>) -> bool {
+ fn has(&self, needle: &Path, module: Kind) -> bool {
match self {
PathSet::Set(set) => set.iter().any(|p| Self::check(p, needle, module)),
PathSet::Suite(suite) => Self::check(suite, needle, module),
@@ -224,9 +201,9 @@ impl PathSet {
}
// internal use only
- fn check(p: &TaskPath, needle: &Path, module: Option<Kind>) -> bool {
- if let (Some(p_kind), Some(kind)) = (&p.kind, module) {
- p.path.ends_with(needle) && *p_kind == kind
+ fn check(p: &TaskPath, needle: &Path, module: Kind) -> bool {
+ if let Some(p_kind) = &p.kind {
+ p.path.ends_with(needle) && *p_kind == module
} else {
p.path.ends_with(needle)
}
@@ -238,11 +215,7 @@ impl PathSet {
/// This is used for `StepDescription::krate`, which passes all matching crates at once to
/// `Step::make_run`, rather than calling it many times with a single crate.
/// See `tests.rs` for examples.
- fn intersection_removing_matches(
- &self,
- needles: &mut Vec<&Path>,
- module: Option<Kind>,
- ) -> PathSet {
+ fn intersection_removing_matches(&self, needles: &mut Vec<&Path>, module: Kind) -> PathSet {
let mut check = |p| {
for (i, n) in needles.iter().enumerate() {
let matched = Self::check(p, n, module);
@@ -307,7 +280,7 @@ impl StepDescription {
}
fn is_excluded(&self, builder: &Builder<'_>, pathset: &PathSet) -> bool {
- if builder.config.exclude.iter().any(|e| pathset.has(&e.path, Some(builder.kind))) {
+ if builder.config.exclude.iter().any(|e| pathset.has(&e, builder.kind)) {
println!("Skipping {:?} because it is excluded", pathset);
return true;
}
@@ -562,7 +535,7 @@ impl<'a> ShouldRun<'a> {
) -> Vec<PathSet> {
let mut sets = vec![];
for pathset in &self.paths {
- let subset = pathset.intersection_removing_matches(paths, Some(kind));
+ let subset = pathset.intersection_removing_matches(paths, kind);
if subset != PathSet::empty() {
sets.push(subset);
}
@@ -2130,7 +2103,7 @@ impl<'a> Builder<'a> {
let should_run = (desc.should_run)(ShouldRun::new(self, desc.kind));
for path in &self.paths {
- if should_run.paths.iter().any(|s| s.has(path, Some(desc.kind)))
+ if should_run.paths.iter().any(|s| s.has(path, desc.kind))
&& !desc.is_excluded(
self,
&PathSet::Suite(TaskPath { path: path.clone(), kind: Some(desc.kind) }),