Skip to content

Commit 2007588

Browse files
authored
Rollup merge of rust-lang#77161 - est31:swich_len_already_trusted, r=petrochenkov
Remove TrustedLen requirement from BuilderMethods::switch The main use case of TrustedLen is allowing APIs to specialize on it, but no use of it uses that specialization. Instead, only the .len() function provided by ExactSizeIterator is used, which is already required to be accurate. Thus, the TrustedLen requirement on BuilderMethods::switch is redundant.
2 parents 273317d + 12ada5c commit 2007588

File tree

4 files changed

+2
-6
lines changed

4 files changed

+2
-6
lines changed

compiler/rustc_codegen_llvm/src/builder.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ use rustc_target::abi::{self, Align, Size};
2121
use rustc_target::spec::{HasTargetSpec, Target};
2222
use std::borrow::Cow;
2323
use std::ffi::CStr;
24-
use std::iter::TrustedLen;
2524
use std::ops::{Deref, Range};
2625
use std::ptr;
2726
use tracing::debug;
@@ -179,7 +178,7 @@ impl BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
179178
&mut self,
180179
v: &'ll Value,
181180
else_llbb: &'ll BasicBlock,
182-
cases: impl ExactSizeIterator<Item = (u128, &'ll BasicBlock)> + TrustedLen,
181+
cases: impl ExactSizeIterator<Item = (u128, &'ll BasicBlock)>,
183182
) {
184183
let switch =
185184
unsafe { llvm::LLVMBuildSwitch(self.llbuilder, v, else_llbb, cases.len() as c_uint) };

compiler/rustc_codegen_llvm/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#![feature(in_band_lifetimes)]
1313
#![feature(nll)]
1414
#![feature(or_patterns)]
15-
#![feature(trusted_len)]
1615
#![recursion_limit = "256"]
1716

1817
use back::write::{create_informational_target_machine, create_target_machine};

compiler/rustc_codegen_ssa/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#![feature(in_band_lifetimes)]
77
#![feature(nll)]
88
#![feature(or_patterns)]
9-
#![feature(trusted_len)]
109
#![feature(associated_type_bounds)]
1110
#![recursion_limit = "256"]
1211

compiler/rustc_codegen_ssa/src/traits/builder.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ use rustc_middle::ty::Ty;
1818
use rustc_target::abi::{Abi, Align, Scalar, Size};
1919
use rustc_target::spec::HasTargetSpec;
2020

21-
use std::iter::TrustedLen;
2221
use std::ops::Range;
2322

2423
#[derive(Copy, Clone)]
@@ -60,7 +59,7 @@ pub trait BuilderMethods<'a, 'tcx>:
6059
&mut self,
6160
v: Self::Value,
6261
else_llbb: Self::BasicBlock,
63-
cases: impl ExactSizeIterator<Item = (u128, Self::BasicBlock)> + TrustedLen,
62+
cases: impl ExactSizeIterator<Item = (u128, Self::BasicBlock)>,
6463
);
6564
fn invoke(
6665
&mut self,

0 commit comments

Comments
 (0)