Skip to content

Commit 7171fee

Browse files
committed
remove unnecessary collection
1 parent 6a64e3b commit 7171fee

File tree

3 files changed

+6
-20
lines changed

3 files changed

+6
-20
lines changed

Cargo.lock

-1
Original file line numberDiff line numberDiff line change
@@ -4260,7 +4260,6 @@ dependencies = [
42604260
"rustc_serialize",
42614261
"rustc_type_ir",
42624262
"rustc_type_ir_macros",
4263-
"smallvec",
42644263
"tracing",
42654264
]
42664265

compiler/rustc_next_trait_solver/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ rustc_macros = { path = "../rustc_macros", optional = true }
1313
rustc_serialize = { path = "../rustc_serialize", optional = true }
1414
rustc_type_ir = { path = "../rustc_type_ir", default-features = false }
1515
rustc_type_ir_macros = { path = "../rustc_type_ir_macros" }
16-
smallvec = "1.8.1"
1716
tracing = "0.1"
1817
# tidy-alphabetical-end
1918

compiler/rustc_next_trait_solver/src/solve/trait_goals.rs

+6-18
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use rustc_type_ir::lang_items::TraitSolverLangItem;
88
use rustc_type_ir::solve::CanonicalResponse;
99
use rustc_type_ir::visit::TypeVisitableExt as _;
1010
use rustc_type_ir::{self as ty, Interner, TraitPredicate, TypingMode, Upcast as _, elaborate};
11-
use smallvec::SmallVec;
1211
use tracing::{instrument, trace};
1312

1413
use crate::delegate::SolverDelegate;
@@ -1199,25 +1198,14 @@ where
11991198
// nested requirements, over all others. This is a fix for #53123 and
12001199
// prevents where-bounds from accidentally extending the lifetime of a
12011200
// variable.
1202-
if candidates
1203-
.iter()
1204-
.any(|c| matches!(c.source, CandidateSource::BuiltinImpl(BuiltinImplSource::Trivial)))
1205-
{
1206-
let trivial_builtin_impls: SmallVec<[_; 1]> = candidates
1207-
.iter()
1208-
.filter(|c| {
1209-
matches!(c.source, CandidateSource::BuiltinImpl(BuiltinImplSource::Trivial))
1210-
})
1211-
.map(|c| c.result)
1212-
.collect();
1201+
let mut trivial_builtin_impls = candidates.iter().filter(|c| {
1202+
matches!(c.source, CandidateSource::BuiltinImpl(BuiltinImplSource::Trivial))
1203+
});
1204+
if let Some(candidate) = trivial_builtin_impls.next() {
12131205
// There should only ever be a single trivial builtin candidate
12141206
// as they would otherwise overlap.
1215-
assert_eq!(trivial_builtin_impls.len(), 1);
1216-
return if let Some(response) = self.try_merge_responses(&trivial_builtin_impls) {
1217-
Ok((response, Some(TraitGoalProvenVia::Misc)))
1218-
} else {
1219-
Ok((self.bail_with_ambiguity(&trivial_builtin_impls), None))
1220-
};
1207+
assert!(trivial_builtin_impls.next().is_none());
1208+
return Ok((candidate.result, Some(TraitGoalProvenVia::Misc)));
12211209
}
12221210

12231211
// If there are non-global where-bounds, prefer where-bounds

0 commit comments

Comments
 (0)