Skip to content

Commit 0e022fc

Browse files
committed
Auto merge of rust-lang#77580 - petrochenkov:norestarg, r=matthewjasper
rustc_target: Refactor away `TargetResult` Follow-up to rust-lang#77202. Construction of a built-in target is always infallible now, so `TargetResult` is no longer necessary. The second commit contains some further cleanup based on built-in target construction being infallible.
2 parents 1661f77 + 1444ad7 commit 0e022fc

File tree

159 files changed

+633
-668
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+633
-668
lines changed

compiler/rustc_driver/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,8 @@ impl RustcDefaultCalls {
671671
for req in &sess.opts.prints {
672672
match *req {
673673
TargetList => {
674-
let mut targets = rustc_target::spec::get_targets().collect::<Vec<String>>();
674+
let mut targets =
675+
rustc_target::spec::TARGETS.iter().copied().collect::<Vec<_>>();
675676
targets.sort();
676677
println!("{}", targets.join("\n"));
677678
}

compiler/rustc_target/src/spec/aarch64_apple_darwin.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::apple_base::opts();
55
base.cpu = "apple-a12".to_string();
66
base.max_atomic_width = Some(128);
@@ -14,7 +14,7 @@ pub fn target() -> TargetResult {
1414
let arch = "aarch64";
1515
let llvm_target = super::apple_base::macos_llvm_target(&arch);
1616

17-
Ok(Target {
17+
Target {
1818
llvm_target,
1919
target_endian: "little".to_string(),
2020
target_pointer_width: "64".to_string(),
@@ -26,5 +26,5 @@ pub fn target() -> TargetResult {
2626
target_vendor: "apple".to_string(),
2727
linker_flavor: LinkerFlavor::Gcc,
2828
options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base },
29-
})
29+
}
3030
}

compiler/rustc_target/src/spec/aarch64_apple_ios.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use super::apple_sdk_base::{opts, Arch};
2-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
2+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
33

4-
pub fn target() -> TargetResult {
4+
pub fn target() -> Target {
55
let base = opts(Arch::Arm64);
6-
Ok(Target {
6+
Target {
77
llvm_target: "arm64-apple-ios".to_string(),
88
target_endian: "little".to_string(),
99
target_pointer_width: "64".to_string(),
@@ -33,5 +33,5 @@ pub fn target() -> TargetResult {
3333
.to_string(),
3434
..base
3535
},
36-
})
36+
}
3737
}

compiler/rustc_target/src/spec/aarch64_apple_tvos.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use super::apple_sdk_base::{opts, Arch};
2-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
2+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
33

4-
pub fn target() -> TargetResult {
4+
pub fn target() -> Target {
55
let base = opts(Arch::Arm64);
6-
Ok(Target {
6+
Target {
77
llvm_target: "arm64-apple-tvos".to_string(),
88
target_endian: "little".to_string(),
99
target_pointer_width: "64".to_string(),
@@ -22,5 +22,5 @@ pub fn target() -> TargetResult {
2222
forces_embed_bitcode: true,
2323
..base
2424
},
25-
})
25+
}
2626
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use crate::spec::{LinkerFlavor, LldFlavor, Target, TargetOptions, TargetResult};
1+
use crate::spec::{LinkerFlavor, LldFlavor, Target, TargetOptions};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::fuchsia_base::opts();
55
base.max_atomic_width = Some(128);
66

7-
Ok(Target {
7+
Target {
88
llvm_target: "aarch64-fuchsia".to_string(),
99
target_endian: "little".to_string(),
1010
target_pointer_width: "64".to_string(),
@@ -16,5 +16,5 @@ pub fn target() -> TargetResult {
1616
target_vendor: String::new(),
1717
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
1818
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
19-
})
19+
}
2020
}
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
22

33
// See https://developer.android.com/ndk/guides/abis.html#arm64-v8a
44
// for target ABI requirements.
55

6-
pub fn target() -> TargetResult {
6+
pub fn target() -> Target {
77
let mut base = super::android_base::opts();
88
base.max_atomic_width = Some(128);
99
// As documented in http://developer.android.com/ndk/guides/cpu-features.html
1010
// the neon (ASIMD) and FP must exist on all android aarch64 targets.
1111
base.features = "+neon,+fp-armv8".to_string();
12-
Ok(Target {
12+
Target {
1313
llvm_target: "aarch64-linux-android".to_string(),
1414
target_endian: "little".to_string(),
1515
target_pointer_width: "64".to_string(),
@@ -21,5 +21,5 @@ pub fn target() -> TargetResult {
2121
target_vendor: "unknown".to_string(),
2222
linker_flavor: LinkerFlavor::Gcc,
2323
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
24-
})
24+
}
2525
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::windows_msvc_base::opts();
55
base.max_atomic_width = Some(64);
66
base.has_elf_tls = true;
77
base.features = "+neon,+fp-armv8".to_string();
88

9-
Ok(Target {
9+
Target {
1010
llvm_target: "aarch64-pc-windows-msvc".to_string(),
1111
target_endian: "little".to_string(),
1212
target_pointer_width: "64".to_string(),
@@ -18,5 +18,5 @@ pub fn target() -> TargetResult {
1818
target_vendor: "pc".to_string(),
1919
linker_flavor: LinkerFlavor::Msvc,
2020
options: base,
21-
})
21+
}
2222
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::cloudabi_base::opts();
55
base.max_atomic_width = Some(128);
66
base.unsupported_abis = super::arm_base::unsupported_abis();
77
base.linker = Some("aarch64-unknown-cloudabi-cc".to_string());
88

9-
Ok(Target {
9+
Target {
1010
llvm_target: "aarch64-unknown-cloudabi".to_string(),
1111
target_endian: "little".to_string(),
1212
target_pointer_width: "64".to_string(),
@@ -18,5 +18,5 @@ pub fn target() -> TargetResult {
1818
target_vendor: "unknown".to_string(),
1919
linker_flavor: LinkerFlavor::Gcc,
2020
options: base,
21-
})
21+
}
2222
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::freebsd_base::opts();
55
base.max_atomic_width = Some(128);
66

7-
Ok(Target {
7+
Target {
88
llvm_target: "aarch64-unknown-freebsd".to_string(),
99
target_endian: "little".to_string(),
1010
target_pointer_width: "64".to_string(),
@@ -16,5 +16,5 @@ pub fn target() -> TargetResult {
1616
target_vendor: "unknown".to_string(),
1717
linker_flavor: LinkerFlavor::Gcc,
1818
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
19-
})
19+
}
2020
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use crate::spec::{LinkerFlavor, LldFlavor, Target, TargetResult};
1+
use crate::spec::{LinkerFlavor, LldFlavor, Target};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::hermit_base::opts();
55
base.max_atomic_width = Some(128);
66

7-
Ok(Target {
7+
Target {
88
llvm_target: "aarch64-unknown-hermit".to_string(),
99
target_endian: "little".to_string(),
1010
target_pointer_width: "64".to_string(),
@@ -16,5 +16,5 @@ pub fn target() -> TargetResult {
1616
target_vendor: "unknown".to_string(),
1717
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
1818
options: base,
19-
})
19+
}
2020
}

compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::linux_base::opts();
55
base.max_atomic_width = Some(128);
66

7-
Ok(Target {
7+
Target {
88
llvm_target: "aarch64-unknown-linux-gnu".to_string(),
99
target_endian: "little".to_string(),
1010
target_pointer_width: "64".to_string(),
@@ -20,5 +20,5 @@ pub fn target() -> TargetResult {
2020
target_mcount: "\u{1}_mcount".to_string(),
2121
..base
2222
},
23-
})
23+
}
2424
}

compiler/rustc_target/src/spec/aarch64_unknown_linux_musl.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::linux_musl_base::opts();
55
base.max_atomic_width = Some(128);
66

7-
Ok(Target {
7+
Target {
88
llvm_target: "aarch64-unknown-linux-musl".to_string(),
99
target_endian: "little".to_string(),
1010
target_pointer_width: "64".to_string(),
@@ -20,5 +20,5 @@ pub fn target() -> TargetResult {
2020
target_mcount: "\u{1}_mcount".to_string(),
2121
..base
2222
},
23-
})
23+
}
2424
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target, TargetOptions};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::netbsd_base::opts();
55
base.max_atomic_width = Some(128);
66
base.unsupported_abis = super::arm_base::unsupported_abis();
77

8-
Ok(Target {
8+
Target {
99
llvm_target: "aarch64-unknown-netbsd".to_string(),
1010
target_endian: "little".to_string(),
1111
target_pointer_width: "64".to_string(),
@@ -17,5 +17,5 @@ pub fn target() -> TargetResult {
1717
target_vendor: "unknown".to_string(),
1818
linker_flavor: LinkerFlavor::Gcc,
1919
options: TargetOptions { target_mcount: "__mcount".to_string(), ..base },
20-
})
20+
}
2121
}

compiler/rustc_target/src/spec/aarch64_unknown_none.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOptions};
1010

11-
pub fn target() -> Result<Target, String> {
11+
pub fn target() -> Target {
1212
let opts = TargetOptions {
1313
linker: Some("rust-lld".to_owned()),
1414
features: "+strict-align,+neon,+fp-armv8".to_string(),
@@ -21,7 +21,7 @@ pub fn target() -> Result<Target, String> {
2121
unsupported_abis: super::arm_base::unsupported_abis(),
2222
..Default::default()
2323
};
24-
Ok(Target {
24+
Target {
2525
llvm_target: "aarch64-unknown-none".to_string(),
2626
target_endian: "little".to_string(),
2727
target_pointer_width: "64".to_string(),
@@ -33,5 +33,5 @@ pub fn target() -> Result<Target, String> {
3333
arch: "aarch64".to_string(),
3434
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
3535
options: opts,
36-
})
36+
}
3737
}

compiler/rustc_target/src/spec/aarch64_unknown_none_softfloat.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOptions};
1010

11-
pub fn target() -> Result<Target, String> {
11+
pub fn target() -> Target {
1212
let opts = TargetOptions {
1313
linker: Some("rust-lld".to_owned()),
1414
features: "+strict-align,-neon,-fp-armv8".to_string(),
@@ -21,7 +21,7 @@ pub fn target() -> Result<Target, String> {
2121
unsupported_abis: super::arm_base::unsupported_abis(),
2222
..Default::default()
2323
};
24-
Ok(Target {
24+
Target {
2525
llvm_target: "aarch64-unknown-none".to_string(),
2626
target_endian: "little".to_string(),
2727
target_pointer_width: "64".to_string(),
@@ -33,5 +33,5 @@ pub fn target() -> Result<Target, String> {
3333
arch: "aarch64".to_string(),
3434
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
3535
options: opts,
36-
})
36+
}
3737
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::openbsd_base::opts();
55
base.max_atomic_width = Some(128);
66
base.unsupported_abis = super::arm_base::unsupported_abis();
77

8-
Ok(Target {
8+
Target {
99
llvm_target: "aarch64-unknown-openbsd".to_string(),
1010
target_endian: "little".to_string(),
1111
target_pointer_width: "64".to_string(),
@@ -17,5 +17,5 @@ pub fn target() -> TargetResult {
1717
target_vendor: "unknown".to_string(),
1818
linker_flavor: LinkerFlavor::Gcc,
1919
options: base,
20-
})
20+
}
2121
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::redox_base::opts();
55
base.max_atomic_width = Some(128);
66

7-
Ok(Target {
7+
Target {
88
llvm_target: "aarch64-unknown-redox".to_string(),
99
target_endian: "little".to_string(),
1010
target_pointer_width: "64".to_string(),
@@ -16,5 +16,5 @@ pub fn target() -> TargetResult {
1616
target_vendor: "unknown".to_string(),
1717
linker_flavor: LinkerFlavor::Gcc,
1818
options: base,
19-
})
19+
}
2020
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
use crate::spec::{LinkerFlavor, Target, TargetResult};
1+
use crate::spec::{LinkerFlavor, Target};
22

3-
pub fn target() -> TargetResult {
3+
pub fn target() -> Target {
44
let mut base = super::windows_uwp_msvc_base::opts();
55
base.max_atomic_width = Some(64);
66
base.has_elf_tls = true;
77

8-
Ok(Target {
8+
Target {
99
llvm_target: "aarch64-pc-windows-msvc".to_string(),
1010
target_endian: "little".to_string(),
1111
target_pointer_width: "64".to_string(),
@@ -17,5 +17,5 @@ pub fn target() -> TargetResult {
1717
target_vendor: "uwp".to_string(),
1818
linker_flavor: LinkerFlavor::Msvc,
1919
options: base,
20-
})
20+
}
2121
}

0 commit comments

Comments
 (0)