Auto merge of #91580 - scottmcm:less-inband-1-of-28, r=petrochenkov
Stop enabling `in_band_lifetimes` in rustc_data_structures There's a conversation started in the tracking issue about possibly unaccepting `in_band_lifetimes`, but it's used heavily in the compiler, and thus there'd need to be a bunch of PRs like this if that were to happen. So here's one to see how much of an impact it has. For this crate, at least, it doesn't seem like in-band was a big win -- about half the places that were using it didn't even need a named lifetime. (Oh, and I removed `nll` while I was here too, since it didn't seem needed. Let me know if I should put that back.) r? `@petrochenkov`
This commit is contained in:
commit
bc9326d83d
|
@ -6,7 +6,7 @@ mod tests;
|
|||
/// function finds the range of elements that match the key. `data`
|
||||
/// must have been sorted as if by a call to `sort_by_key` for this to
|
||||
/// work.
|
||||
pub fn binary_search_slice<E, K>(data: &'d [E], key_fn: impl Fn(&E) -> K, key: &K) -> &'d [E]
|
||||
pub fn binary_search_slice<'d, E, K>(data: &'d [E], key_fn: impl Fn(&E) -> K, key: &K) -> &'d [E]
|
||||
where
|
||||
K: Ord,
|
||||
{
|
||||
|
|
|
@ -79,7 +79,7 @@ where
|
|||
visited: BitSet<G::Node>,
|
||||
}
|
||||
|
||||
impl<G> DepthFirstSearch<'graph, G>
|
||||
impl<'graph, G> DepthFirstSearch<'graph, G>
|
||||
where
|
||||
G: ?Sized + DirectedGraph + WithNumNodes + WithSuccessors,
|
||||
{
|
||||
|
@ -209,7 +209,7 @@ where
|
|||
settled: BitSet<G::Node>,
|
||||
}
|
||||
|
||||
impl<G> TriColorDepthFirstSearch<'graph, G>
|
||||
impl<'graph, G> TriColorDepthFirstSearch<'graph, G>
|
||||
where
|
||||
G: ?Sized + DirectedGraph + WithNumNodes + WithSuccessors,
|
||||
{
|
||||
|
@ -276,7 +276,7 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl<G> TriColorDepthFirstSearch<'graph, G>
|
||||
impl<G> TriColorDepthFirstSearch<'_, G>
|
||||
where
|
||||
G: ?Sized + DirectedGraph + WithNumNodes + WithSuccessors + WithStartNode,
|
||||
{
|
||||
|
|
|
@ -97,7 +97,7 @@ impl<N: Idx, S: Idx> WithNumEdges for Sccs<N, S> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<N: Idx, S: Idx> GraphSuccessors<'graph> for Sccs<N, S> {
|
||||
impl<'graph, N: Idx, S: Idx> GraphSuccessors<'graph> for Sccs<N, S> {
|
||||
type Item = S;
|
||||
|
||||
type Iter = std::iter::Cloned<std::slice::Iter<'graph, S>>;
|
||||
|
|
|
@ -94,7 +94,7 @@ impl<N: Idx> WithNumEdges for VecGraph<N> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<N: Idx> GraphSuccessors<'graph> for VecGraph<N> {
|
||||
impl<'graph, N: Idx> GraphSuccessors<'graph> for VecGraph<N> {
|
||||
type Item = N;
|
||||
|
||||
type Iter = std::iter::Cloned<std::slice::Iter<'graph, N>>;
|
||||
|
|
|
@ -15,13 +15,11 @@
|
|||
#![feature(core_intrinsics)]
|
||||
#![feature(extend_one)]
|
||||
#![feature(hash_raw_entry)]
|
||||
#![feature(in_band_lifetimes)]
|
||||
#![feature(maybe_uninit_uninit_array)]
|
||||
#![feature(min_specialization)]
|
||||
#![feature(never_type)]
|
||||
#![feature(type_alias_impl_trait)]
|
||||
#![feature(new_uninit)]
|
||||
#![feature(nll)]
|
||||
#![feature(once_cell)]
|
||||
#![feature(test)]
|
||||
#![feature(thread_id_value)]
|
||||
|
|
|
@ -84,7 +84,7 @@ impl<I: Idx, K: Ord, V> SortedIndexMultiMap<I, K, V> {
|
|||
/// If there are multiple items that are equivalent to `key`, they will be yielded in
|
||||
/// insertion order.
|
||||
#[inline]
|
||||
pub fn get_by_key(&'a self, key: K) -> impl 'a + Iterator<Item = &'a V> {
|
||||
pub fn get_by_key(&self, key: K) -> impl Iterator<Item = &V> + '_ {
|
||||
self.get_by_key_enumerated(key).map(|(_, v)| v)
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ impl<I: Idx, K: Ord, V> SortedIndexMultiMap<I, K, V> {
|
|||
/// If there are multiple items that are equivalent to `key`, they will be yielded in
|
||||
/// insertion order.
|
||||
#[inline]
|
||||
pub fn get_by_key_enumerated(&'a self, key: K) -> impl '_ + Iterator<Item = (I, &V)> {
|
||||
pub fn get_by_key_enumerated(&self, key: K) -> impl Iterator<Item = (I, &V)> + '_ {
|
||||
let lower_bound = self.idx_sorted_by_item_key.partition_point(|&i| self.items[i].0 < key);
|
||||
self.idx_sorted_by_item_key[lower_bound..].iter().map_while(move |&i| {
|
||||
let (k, v) = &self.items[i];
|
||||
|
|
|
@ -423,14 +423,14 @@ impl<K, V> IntoIterator for SsoHashMap<K, V> {
|
|||
|
||||
/// adapts Item of array reference iterator to Item of hashmap reference iterator.
|
||||
#[inline(always)]
|
||||
fn adapt_array_ref_it<K, V>(pair: &'a (K, V)) -> (&'a K, &'a V) {
|
||||
fn adapt_array_ref_it<K, V>(pair: &(K, V)) -> (&K, &V) {
|
||||
let (a, b) = pair;
|
||||
(a, b)
|
||||
}
|
||||
|
||||
/// adapts Item of array mut reference iterator to Item of hashmap mut reference iterator.
|
||||
#[inline(always)]
|
||||
fn adapt_array_mut_it<K, V>(pair: &'a mut (K, V)) -> (&'a K, &'a mut V) {
|
||||
fn adapt_array_mut_it<K, V>(pair: &mut (K, V)) -> (&K, &mut V) {
|
||||
let (a, b) = pair;
|
||||
(a, b)
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ impl<T> SsoHashSet<T> {
|
|||
/// An iterator visiting all elements in arbitrary order.
|
||||
/// The iterator element type is `&'a T`.
|
||||
#[inline]
|
||||
pub fn iter(&'a self) -> impl Iterator<Item = &'a T> {
|
||||
pub fn iter(&self) -> impl Iterator<Item = &T> {
|
||||
self.into_iter()
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@ use rustc_index::vec::{Idx, IndexVec};
|
|||
|
||||
pub fn iter<Ls>(
|
||||
first: Option<Ls::LinkIndex>,
|
||||
links: &'a Ls,
|
||||
) -> impl Iterator<Item = Ls::LinkIndex> + 'a
|
||||
links: &Ls,
|
||||
) -> impl Iterator<Item = Ls::LinkIndex> + '_
|
||||
where
|
||||
Ls: Links,
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue