Repository: rust-lang/rust
File: compiler/rustc_target/src/spec/mod.rs (Rust)

Code before:
                    self.llvm_floatabi.is_some(),
                    "ARM targets must set `llvm-floatabi` to `hard` or `soft`",
                )
            }
            // PowerPC64 targets that are not AIX must set their ABI to either ELFv1 or ELFv2
            Arch::PowerPC64 if self.os != Os::Aix => {
                if self.endian == Endian::Big {
                    check_matches!(
                        &*self.llvm_abiname,
                        "elfv1" | "elfv2",
                        "invalid PowerPC64 ABI name: {}",
                        self.llvm_abiname,
                    );
                } else {
                    check!(
                        self.llvm_abiname == "elfv2",
                        "little-endian PowerPC64 targets only support the `elfv2` ABI",
                    );
                }
            }
            Arch::PowerPC64 if self.os == Os::Aix => {
                check!(
                    self.llvm_abiname.is_empty(),
                    "AIX targets always use the AIX ABI and `llvm_abiname` should be left empty",
                );
            }
            _ => {}
        }

        // Check consistency of Rust ABI declaration.
        if let Some(rust_abi) = self.rustc_abi {
            match rust_abi {
                RustcAbi::X86Sse2 => check_matches!(
                    self.arch,
                    Arch::X86,
                    "`x86-sse2` ABI is only valid for x86-32 targets"
                ),
                RustcAbi::X86Softfloat => check_matches!(
                    self.arch,
                    Arch::X86 | Arch::X86_64,
                    "`x86-softfloat` ABI is only valid for x86 targets"
                ),
            }
        }

        // Check that the given target-features string makes some basic sense.
        if !self.features.is_empty() {
            let mut features_enabled = FxHashSet::default();
            let mut features_disabled = FxHashSet::default();
            for feat in self.features.split(',') {
                if let Some(feat) = feat.strip_prefix("+") {

Review comment (suggestion):
I feel it would be easier to read if the branches were written within one match arm. Like:

```suggestion
            Arch::PowerPC64 => {
                if self.os == Os::Aix {
                    check!(
                        self.llvm_abiname.is_empty(),
                        "AIX targets always use the AIX ABI and `llvm_abiname` should be left empty",
                    );
                } else if self.endian == Endian::Big {
                    check_matches!(
                        &*self.llvm_abiname,
                        "elfv1" | "elfv2",
                        "invalid PowerPC64 ABI name: {}",
                        self.llvm_abiname,
                    );
                } else {
                    check!(
                        self.llvm_abiname == "elfv2",
                        "little-endian PowerPC64 targets only support the `elfv2` ABI",
                    );
                }
            }
```


Code after:
                    self.llvm_floatabi.is_some(),
                    "ARM targets must set `llvm-floatabi` to `hard` or `soft`",
                )
            }
            // PowerPC64 targets that are not AIX must set their ABI to either ELFv1 or ELFv2
            Arch::PowerPC64 => {
                if self.os == Os::Aix {
                    check!(
                        self.llvm_abiname.is_empty(),
                        "AIX targets always use the AIX ABI and `llvm_abiname` should be left empty",
                    );
                } else if self.endian == Endian::Big {
                    check_matches!(
                        &*self.llvm_abiname,
                        "elfv1" | "elfv2",
                        "invalid PowerPC64 ABI name: {}",
                        self.llvm_abiname,
                    );
                } else {
                    check!(
                        self.llvm_abiname == "elfv2",
                        "little-endian PowerPC64 targets only support the `elfv2` ABI",
                    );
                }
            }
            _ => {}
        }

        // Check consistency of Rust ABI declaration.
        if let Some(rust_abi) = self.rustc_abi {
            match rust_abi {
                RustcAbi::X86Sse2 => check_matches!(
                    self.arch,
                    Arch::X86,
                    "`x86-sse2` ABI is only valid for x86-32 targets"
                ),
                RustcAbi::X86Softfloat => check_matches!(
                    self.arch,
                    Arch::X86 | Arch::X86_64,
                    "`x86-softfloat` ABI is only valid for x86 targets"
                ),
            }
        }

        // Check that the given target-features string makes some basic sense.
        if !self.features.is_empty() {
            let mut features_enabled = FxHashSet::default();
            let mut features_disabled = FxHashSet::default();
            for feat in self.features.split(',') {
                if let Some(feat) = feat.strip_prefix("+") {
                    features_enabled.insert(feat);