From a82178564184c167954472f0079cf8773ee0b485 Mon Sep 17 00:00:00 2001 From: Yotam Ofek Date: Sun, 2 Feb 2025 13:08:51 +0000 Subject: [PATCH] rustc_codegen_ssa: simplify test for incompatible dependency formats thanks @kadiwa4 --- compiler/rustc_codegen_ssa/src/back/link.rs | 25 +++++++++------------ 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs index c592cf347b57..6e30c6c14516 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs @@ -244,22 +244,17 @@ pub fn each_linked_rlib( fmts } else { - for combination in info.dependency_formats.iter().combinations(2) { - let (ty1, list1) = &combination[0]; - let (ty2, list2) = &combination[1]; - if list1 != list2 { - return Err(errors::LinkRlibError::IncompatibleDependencyFormats { - ty1: format!("{ty1:?}"), - ty2: format!("{ty2:?}"), - list1: format!("{list1:?}"), - list2: format!("{list2:?}"), - }); - } + let mut dep_formats = info.dependency_formats.iter(); + let (ty1, list1) = dep_formats.next().ok_or(errors::LinkRlibError::MissingFormat)?; + if let Some((ty2, list2)) = dep_formats.find(|(_, list2)| list1 != *list2) { + return Err(errors::LinkRlibError::IncompatibleDependencyFormats { + ty1: format!("{ty1:?}"), + ty2: format!("{ty2:?}"), + list1: format!("{list1:?}"), + list2: format!("{list2:?}"), + }); } - if info.dependency_formats.is_empty() { - return Err(errors::LinkRlibError::MissingFormat); - } - info.dependency_formats.first().unwrap().1 + list1 }; let used_dep_crates = info.used_crates.iter();