Make most bootstrap step types !Copy

This makes all bootstrap types except for `Compiler` and
`TargetSelection` `!Copy`. This makes it easier to modify them by adding
!Copy types in the future and comes at no cost of code clarity, the
impls were completely unused.
This commit is contained in:
Nilstrieb 2024-02-24 22:44:21 +01:00
parent 6bdb8a4a96
commit 2401ae1896
13 changed files with 99 additions and 99 deletions

View File

@ -367,7 +367,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct RustAnalyzer { pub struct RustAnalyzer {
pub target: TargetSelection, pub target: TargetSelection,
} }
@ -441,7 +441,7 @@ fn stamp(builder: &Builder<'_>, compiler: Compiler, target: TargetSelection) ->
macro_rules! tool_check_step { macro_rules! tool_check_step {
($name:ident, $path:literal, $($alias:literal, )* $source_type:path $(, $default:literal )?) => { ($name:ident, $path:literal, $($alias:literal, )* $source_type:path $(, $default:literal )?) => {
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct $name { pub struct $name {
pub target: TargetSelection, pub target: TargetSelection,
} }

View File

@ -14,7 +14,7 @@
use crate::utils::helpers::t; use crate::utils::helpers::t;
use crate::{Build, Compiler, Mode, Subcommand}; use crate::{Build, Compiler, Mode, Subcommand};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct CleanAll {} pub struct CleanAll {}
impl Step for CleanAll { impl Step for CleanAll {

View File

@ -727,7 +727,7 @@ fn apple_darwin_sign_file(file_path: &Path) {
assert!(status.success()); assert!(status.success());
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct StartupObjects { pub struct StartupObjects {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1491,7 +1491,7 @@ pub fn compiler_file(
PathBuf::from(out.trim()) PathBuf::from(out.trim())
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Sysroot { pub struct Sysroot {
pub compiler: Compiler, pub compiler: Compiler,
/// See [`Std::force_recompile`]. /// See [`Std::force_recompile`].
@ -1653,7 +1653,7 @@ fn run(self, builder: &Builder<'_>) -> Interned<PathBuf> {
} }
} }
#[derive(Debug, Copy, PartialOrd, Ord, Clone, PartialEq, Eq, Hash)] #[derive(Debug, PartialOrd, Ord, Clone, PartialEq, Eq, Hash)]
pub struct Assemble { pub struct Assemble {
/// The compiler which we will produce in this step. Assemble itself will /// The compiler which we will produce in this step. Assemble itself will
/// take care of ensuring that the necessary prerequisites to do so exist, /// take care of ensuring that the necessary prerequisites to do so exist,

View File

@ -50,7 +50,7 @@ fn should_build_extended_tool(builder: &Builder<'_>, tool: &str) -> bool {
builder.config.tools.as_ref().map_or(true, |tools| tools.contains(tool)) builder.config.tools.as_ref().map_or(true, |tools| tools.contains(tool))
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Docs { pub struct Docs {
pub host: TargetSelection, pub host: TargetSelection,
} }
@ -83,7 +83,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct JsonDocs { pub struct JsonDocs {
pub host: TargetSelection, pub host: TargetSelection,
} }
@ -121,7 +121,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustcDocs { pub struct RustcDocs {
pub host: TargetSelection, pub host: TargetSelection,
} }
@ -308,7 +308,7 @@ fn make_win_dist(
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Mingw { pub struct Mingw {
pub host: TargetSelection, pub host: TargetSelection,
} }
@ -348,7 +348,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Rustc { pub struct Rustc {
pub compiler: Compiler, pub compiler: Compiler,
} }
@ -476,7 +476,7 @@ fn prepare_image(builder: &Builder<'_>, compiler: Compiler, image: &Path) {
let man_src = builder.src.join("src/doc/man"); let man_src = builder.src.join("src/doc/man");
let man_dst = image.join("share/man/man1"); let man_dst = image.join("share/man/man1");
// don't use our `bootstrap::{copy, cp_r}`, because those try // don't use our `bootstrap::{copy_internal, cp_r}`, because those try
// to hardlink, and we don't want to edit the source templates // to hardlink, and we don't want to edit the source templates
for file_entry in builder.read_dir(&man_src) { for file_entry in builder.read_dir(&man_src) {
let page_src = file_entry.path(); let page_src = file_entry.path();
@ -617,7 +617,7 @@ fn copy_target_libs(builder: &Builder<'_>, target: TargetSelection, image: &Path
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Std { pub struct Std {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -664,7 +664,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct RustcDev { pub struct RustcDev {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -723,7 +723,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Analysis { pub struct Analysis {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -870,7 +870,7 @@ fn filter_fn(exclude_dirs: &[&str], dir: &str, path: &Path) -> bool {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Src; pub struct Src;
impl Step for Src { impl Step for Src {
@ -931,7 +931,7 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct PlainSourceTarball; pub struct PlainSourceTarball;
impl Step for PlainSourceTarball { impl Step for PlainSourceTarball {
@ -1031,7 +1031,7 @@ fn run(self, builder: &Builder<'_>) -> GeneratedTarball {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Cargo { pub struct Cargo {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1080,7 +1080,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Rls { pub struct Rls {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1122,7 +1122,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct RustAnalyzer { pub struct RustAnalyzer {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1164,7 +1164,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Clippy { pub struct Clippy {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1212,7 +1212,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Miri { pub struct Miri {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1359,7 +1359,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Rustfmt { pub struct Rustfmt {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1404,7 +1404,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct RustDemangler { pub struct RustDemangler {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1460,7 +1460,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct Extended { pub struct Extended {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,

View File

@ -32,7 +32,7 @@ macro_rules! submodule_helper {
macro_rules! book { macro_rules! book {
($($name:ident, $path:expr, $book_name:expr $(, submodule $(= $submodule:literal)? )? ;)+) => { ($($name:ident, $path:expr, $book_name:expr $(, submodule $(= $submodule:literal)? )? ;)+) => {
$( $(
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct $name { pub struct $name {
target: TargetSelection, target: TargetSelection,
} }
@ -86,7 +86,7 @@ fn run(self, builder: &Builder<'_>) {
StyleGuide, "src/doc/style-guide", "style-guide"; StyleGuide, "src/doc/style-guide", "style-guide";
); );
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct UnstableBook { pub struct UnstableBook {
target: TargetSelection, target: TargetSelection,
} }
@ -160,7 +160,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct TheBook { pub struct TheBook {
compiler: Compiler, compiler: Compiler,
target: TargetSelection, target: TargetSelection,
@ -286,7 +286,7 @@ fn invoke_rustdoc(
builder.run(&mut cmd); builder.run(&mut cmd);
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Standalone { pub struct Standalone {
compiler: Compiler, compiler: Compiler,
target: TargetSelection, target: TargetSelection,
@ -389,7 +389,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Releases { pub struct Releases {
compiler: Compiler, compiler: Compiler,
target: TargetSelection, target: TargetSelection,
@ -492,7 +492,7 @@ pub struct SharedAssetsPaths {
pub version_info: PathBuf, pub version_info: PathBuf,
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct SharedAssets { pub struct SharedAssets {
target: TargetSelection, target: TargetSelection,
} }
@ -872,7 +872,7 @@ macro_rules! tool_doc {
$(is_library = $is_library:expr,)? $(is_library = $is_library:expr,)?
$(crates = $crates:expr)? $(crates = $crates:expr)?
) => { ) => {
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct $tool { pub struct $tool {
target: TargetSelection, target: TargetSelection,
} }
@ -1021,7 +1021,7 @@ fn run(self, builder: &Builder<'_>) {
crates = ["bootstrap"] crates = ["bootstrap"]
); );
#[derive(Ord, PartialOrd, Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Ord, PartialOrd, Debug, Clone, Hash, PartialEq, Eq)]
pub struct ErrorIndex { pub struct ErrorIndex {
pub target: TargetSelection, pub target: TargetSelection,
} }
@ -1056,7 +1056,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct UnstableBookGen { pub struct UnstableBookGen {
target: TargetSelection, target: TargetSelection,
} }
@ -1112,7 +1112,7 @@ fn symlink_dir_force(config: &Config, original: &Path, link: &Path) {
); );
} }
#[derive(Ord, PartialOrd, Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Ord, PartialOrd, Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustcBook { pub struct RustcBook {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,

View File

@ -159,7 +159,7 @@ macro_rules! install {
only_hosts: $only_hosts:expr, only_hosts: $only_hosts:expr,
$run_item:block $(, $c:ident)*;)+) => { $run_item:block $(, $c:ident)*;)+) => {
$( $(
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct $name { pub struct $name {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -303,7 +303,7 @@ fn run($sel, $builder: &Builder<'_>) {
}; };
); );
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Src { pub struct Src {
pub stage: u32, pub stage: u32,
} }

View File

@ -242,7 +242,7 @@ pub(crate) fn is_ci_llvm_modified(config: &Config) -> bool {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Llvm { pub struct Llvm {
pub target: TargetSelection, pub target: TargetSelection,
} }
@ -815,7 +815,7 @@ fn get_var(var_base: &str, host: &str, target: &str) -> Option<OsString> {
.or_else(|| env::var_os(var_base)) .or_else(|| env::var_os(var_base))
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Lld { pub struct Lld {
pub target: TargetSelection, pub target: TargetSelection,
} }
@ -937,7 +937,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Sanitizers { pub struct Sanitizers {
pub target: TargetSelection, pub target: TargetSelection,
} }
@ -1147,7 +1147,7 @@ fn write(&self) -> io::Result<()> {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct CrtBeginEnd { pub struct CrtBeginEnd {
pub target: TargetSelection, pub target: TargetSelection,
} }
@ -1215,7 +1215,7 @@ fn run(self, builder: &Builder<'_>) -> Self::Output {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Libunwind { pub struct Libunwind {
pub target: TargetSelection, pub target: TargetSelection,
} }

View File

@ -10,7 +10,7 @@
use crate::utils::helpers::output; use crate::utils::helpers::output;
use crate::Mode; use crate::Mode;
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ExpandYamlAnchors; pub struct ExpandYamlAnchors;
impl Step for ExpandYamlAnchors { impl Step for ExpandYamlAnchors {
@ -36,7 +36,7 @@ fn make_run(run: RunConfig<'_>) {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct BuildManifest; pub struct BuildManifest;
impl Step for BuildManifest { impl Step for BuildManifest {
@ -75,7 +75,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct BumpStage0; pub struct BumpStage0;
impl Step for BumpStage0 { impl Step for BumpStage0 {
@ -97,7 +97,7 @@ fn run(self, builder: &Builder<'_>) -> Self::Output {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct ReplaceVersionPlaceholder; pub struct ReplaceVersionPlaceholder;
impl Step for ReplaceVersionPlaceholder { impl Step for ReplaceVersionPlaceholder {
@ -119,7 +119,7 @@ fn run(self, builder: &Builder<'_>) -> Self::Output {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Miri { pub struct Miri {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -178,7 +178,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct CollectLicenseMetadata; pub struct CollectLicenseMetadata;
impl Step for CollectLicenseMetadata { impl Step for CollectLicenseMetadata {
@ -210,7 +210,7 @@ fn run(self, builder: &Builder<'_>) -> Self::Output {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct GenerateCopyright; pub struct GenerateCopyright;
impl Step for GenerateCopyright { impl Step for GenerateCopyright {
@ -240,7 +240,7 @@ fn run(self, builder: &Builder<'_>) -> Self::Output {
} }
} }
#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
pub struct GenerateWindowsSys; pub struct GenerateWindowsSys;
impl Step for GenerateWindowsSys { impl Step for GenerateWindowsSys {
@ -262,7 +262,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct GenerateCompletions; pub struct GenerateCompletions;
macro_rules! generate_completions { macro_rules! generate_completions {

View File

@ -233,7 +233,7 @@ fn setup_config_toml(path: &PathBuf, profile: Profile, config: &Config) {
} }
/// Creates a toolchain link for stage1 using `rustup` /// Creates a toolchain link for stage1 using `rustup`
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)] #[derive(Clone, Debug, Eq, PartialEq, Hash)]
pub struct Link; pub struct Link;
impl Step for Link { impl Step for Link {
type Output = (); type Output = ();
@ -444,7 +444,7 @@ fn prompt_user(prompt: &str) -> io::Result<Option<PromptResult>> {
} }
/// Installs `src/etc/pre-push.sh` as a Git hook /// Installs `src/etc/pre-push.sh` as a Git hook
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)] #[derive(Clone, Debug, Eq, PartialEq, Hash)]
pub struct Hook; pub struct Hook;
impl Step for Hook { impl Step for Hook {
@ -516,7 +516,7 @@ fn install_git_hook_maybe(config: &Config) -> io::Result<()> {
} }
/// Sets up or displays `src/etc/rust_analyzer_settings.json` /// Sets up or displays `src/etc/rust_analyzer_settings.json`
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)] #[derive(Clone, Debug, Eq, PartialEq, Hash)]
pub struct Vscode; pub struct Vscode;
impl Step for Vscode { impl Step for Vscode {

View File

@ -12,7 +12,7 @@
use crate::Compiler; use crate::Compiler;
use std::process::{Command, Stdio}; use std::process::{Command, Stdio};
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub(crate) struct MirOptPanicAbortSyntheticTarget { pub(crate) struct MirOptPanicAbortSyntheticTarget {
pub(crate) compiler: Compiler, pub(crate) compiler: Compiler,
pub(crate) base: TargetSelection, pub(crate) base: TargetSelection,

View File

@ -86,7 +86,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Linkcheck { pub struct Linkcheck {
host: TargetSelection, host: TargetSelection,
} }
@ -179,7 +179,7 @@ fn check_if_tidy_is_installed() -> bool {
.map_or(false, |status| status.success()) .map_or(false, |status| status.success())
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct HtmlCheck { pub struct HtmlCheck {
target: TargetSelection, target: TargetSelection,
} }
@ -220,7 +220,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Cargotest { pub struct Cargotest {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -266,7 +266,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Cargo { pub struct Cargo {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -327,7 +327,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct RustAnalyzer { pub struct RustAnalyzer {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -386,7 +386,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Rustfmt { pub struct Rustfmt {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -433,7 +433,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct RustDemangler { pub struct RustDemangler {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -492,7 +492,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Miri { pub struct Miri {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -699,7 +699,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct CompiletestTest { pub struct CompiletestTest {
host: TargetSelection, host: TargetSelection,
} }
@ -747,7 +747,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Clippy { pub struct Clippy {
stage: u32, stage: u32,
host: TargetSelection, host: TargetSelection,
@ -815,7 +815,7 @@ fn path_for_cargo(builder: &Builder<'_>, compiler: Compiler) -> OsString {
env::join_paths(iter::once(path).chain(env::split_paths(&old_path))).expect("") env::join_paths(iter::once(path).chain(env::split_paths(&old_path))).expect("")
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustdocTheme { pub struct RustdocTheme {
pub compiler: Compiler, pub compiler: Compiler,
} }
@ -852,7 +852,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustdocJSStd { pub struct RustdocJSStd {
pub target: TargetSelection, pub target: TargetSelection,
} }
@ -912,7 +912,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustdocJSNotStd { pub struct RustdocJSNotStd {
pub target: TargetSelection, pub target: TargetSelection,
pub compiler: Compiler, pub compiler: Compiler,
@ -966,7 +966,7 @@ fn get_browser_ui_test_version(npm: &Path) -> Option<String> {
.or_else(|| get_browser_ui_test_version_inner(npm, true)) .or_else(|| get_browser_ui_test_version_inner(npm, true))
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustdocGUI { pub struct RustdocGUI {
pub target: TargetSelection, pub target: TargetSelection,
pub compiler: Compiler, pub compiler: Compiler,
@ -1060,7 +1060,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Tidy; pub struct Tidy;
impl Step for Tidy { impl Step for Tidy {
@ -1151,7 +1151,7 @@ fn make_run(run: RunConfig<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ExpandYamlAnchors; pub struct ExpandYamlAnchors;
impl Step for ExpandYamlAnchors { impl Step for ExpandYamlAnchors {
@ -1251,7 +1251,7 @@ macro_rules! test_definitions {
host: $host:expr, host: $host:expr,
compare_mode: $compare_mode:expr compare_mode: $compare_mode:expr
}) => { }) => {
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct $name { pub struct $name {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1294,7 +1294,7 @@ macro_rules! coverage_test_alias {
default: $default:expr, default: $default:expr,
only_hosts: $only_hosts:expr $(,)? only_hosts: $only_hosts:expr $(,)?
}) => { }) => {
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct $name { pub struct $name {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1376,7 +1376,7 @@ fn run(self, builder: &Builder<'_>) {
/// ///
/// Each individual mode also has its own alias that will run the tests in /// Each individual mode also has its own alias that will run the tests in
/// just that mode. /// just that mode.
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Coverage { pub struct Coverage {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1438,7 +1438,7 @@ fn run(self, builder: &Builder<'_>) {
}); });
// For the mir-opt suite we do not use macros, as we need custom behavior when blessing. // For the mir-opt suite we do not use macros, as we need custom behavior when blessing.
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct MirOpt { pub struct MirOpt {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -1494,7 +1494,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
struct Compiletest { struct Compiletest {
compiler: Compiler, compiler: Compiler,
target: TargetSelection, target: TargetSelection,
@ -2142,7 +2142,7 @@ fn run_local_doc(self, builder: &Builder<'_>) {
macro_rules! test_book { macro_rules! test_book {
($($name:ident, $path:expr, $book_name:expr, default=$default:expr;)+) => { ($($name:ident, $path:expr, $book_name:expr, default=$default:expr;)+) => {
$( $(
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct $name { pub struct $name {
compiler: Compiler, compiler: Compiler,
} }
@ -2187,7 +2187,7 @@ fn run(self, builder: &Builder<'_>) {
EditionGuide, "src/doc/edition-guide", "edition-guide", default=false; EditionGuide, "src/doc/edition-guide", "edition-guide", default=false;
); );
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ErrorIndex { pub struct ErrorIndex {
compiler: Compiler, compiler: Compiler,
} }
@ -2264,7 +2264,7 @@ fn markdown_test(builder: &Builder<'_>, compiler: Compiler, markdown: &Path) ->
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct RustcGuide; pub struct RustcGuide;
impl Step for RustcGuide { impl Step for RustcGuide {
@ -2537,7 +2537,7 @@ fn run(self, builder: &Builder<'_>) {
} }
/// Rustdoc is special in various ways, which is why this step is different from `Crate`. /// Rustdoc is special in various ways, which is why this step is different from `Crate`.
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct CrateRustdoc { pub struct CrateRustdoc {
host: TargetSelection, host: TargetSelection,
} }
@ -2638,7 +2638,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct CrateRustdocJsonTypes { pub struct CrateRustdocJsonTypes {
host: TargetSelection, host: TargetSelection,
} }
@ -2708,7 +2708,7 @@ fn run(self, builder: &Builder<'_>) {
/// QEMU we have to build our own tools so we've got conditional dependencies /// QEMU we have to build our own tools so we've got conditional dependencies
/// on those programs as well. Note that the remote test client is built for /// on those programs as well. Note that the remote test client is built for
/// the build target (us) and the server is built for the target. /// the build target (us) and the server is built for the target.
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct RemoteCopyLibs { pub struct RemoteCopyLibs {
compiler: Compiler, compiler: Compiler,
target: TargetSelection, target: TargetSelection,
@ -2754,7 +2754,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Distcheck; pub struct Distcheck;
impl Step for Distcheck { impl Step for Distcheck {
@ -2824,7 +2824,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Bootstrap; pub struct Bootstrap;
impl Step for Bootstrap { impl Step for Bootstrap {
@ -2876,7 +2876,7 @@ fn make_run(run: RunConfig<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct TierCheck { pub struct TierCheck {
pub compiler: Compiler, pub compiler: Compiler,
} }
@ -2926,7 +2926,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct LintDocs { pub struct LintDocs {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -2959,7 +2959,7 @@ fn run(self, builder: &Builder<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct RustInstaller; pub struct RustInstaller;
impl Step for RustInstaller { impl Step for RustInstaller {
@ -3020,7 +3020,7 @@ fn make_run(run: RunConfig<'_>) {
} }
} }
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct TestHelpers { pub struct TestHelpers {
pub target: TargetSelection, pub target: TargetSelection,
} }

View File

@ -15,7 +15,7 @@
use crate::Mode; use crate::Mode;
use crate::{gha, Kind}; use crate::{gha, Kind};
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub enum SourceType { pub enum SourceType {
InTree, InTree,
Submodule, Submodule,
@ -220,7 +220,7 @@ macro_rules! bootstrap_tool {
$(,allow_features = $allow_features:expr)? $(,allow_features = $allow_features:expr)?
; ;
)+) => { )+) => {
#[derive(Copy, PartialEq, Eq, Clone)] #[derive(PartialEq, Eq, Clone)]
pub enum Tool { pub enum Tool {
$( $(
$name, $name,
@ -241,7 +241,7 @@ pub fn tool_exe(&self, tool: Tool) -> PathBuf {
} }
$( $(
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct $name { pub struct $name {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -315,7 +315,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
CoverageDump, "src/tools/coverage-dump", "coverage-dump"; CoverageDump, "src/tools/coverage-dump", "coverage-dump";
); );
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Ord, PartialOrd)] #[derive(Debug, Clone, Hash, PartialEq, Eq, Ord, PartialOrd)]
pub struct ErrorIndex { pub struct ErrorIndex {
pub compiler: Compiler, pub compiler: Compiler,
} }
@ -369,7 +369,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RemoteTestServer { pub struct RemoteTestServer {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -403,7 +403,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Ord, PartialOrd)] #[derive(Debug, Clone, Hash, PartialEq, Eq, Ord, PartialOrd)]
pub struct Rustdoc { pub struct Rustdoc {
/// This should only ever be 0 or 2. /// This should only ever be 0 or 2.
/// We sometimes want to reference the "bootstrap" rustdoc, which is why this option is here. /// We sometimes want to reference the "bootstrap" rustdoc, which is why this option is here.
@ -515,7 +515,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Cargo { pub struct Cargo {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -560,7 +560,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct LldWrapper { pub struct LldWrapper {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -589,7 +589,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustAnalyzer { pub struct RustAnalyzer {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,
@ -637,7 +637,7 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
} }
} }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct RustAnalyzerProcMacroSrv { pub struct RustAnalyzerProcMacroSrv {
pub compiler: Compiler, pub compiler: Compiler,
pub target: TargetSelection, pub target: TargetSelection,

View File

@ -1069,7 +1069,7 @@ pub fn sysroot(&self, compiler: Compiler) -> Interned<PathBuf> {
/// Returns the libdir where the standard library and other artifacts are /// Returns the libdir where the standard library and other artifacts are
/// found for a compiler's sysroot. /// found for a compiler's sysroot.
pub fn sysroot_libdir(&self, compiler: Compiler, target: TargetSelection) -> Interned<PathBuf> { pub fn sysroot_libdir(&self, compiler: Compiler, target: TargetSelection) -> Interned<PathBuf> {
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
struct Libdir { struct Libdir {
compiler: Compiler, compiler: Compiler,
target: TargetSelection, target: TargetSelection,