mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-02 15:32:06 +00:00
Avoid Iterator::last
This commit is contained in:
parent
6f0c4a6c5c
commit
66211d83f9
@ -86,8 +86,7 @@ impl LocationTable {
|
||||
let (block, &first_index) = self
|
||||
.statements_before_block
|
||||
.iter_enumerated()
|
||||
.filter(|(_, first_index)| **first_index <= point_index)
|
||||
.last()
|
||||
.rfind(|&(_, &first_index)| first_index <= point_index)
|
||||
.unwrap();
|
||||
|
||||
let statement_index = (point_index - first_index) / 2;
|
||||
|
@ -576,8 +576,7 @@ impl<'hir> Generics<'hir> {
|
||||
if self.has_where_clause_predicates {
|
||||
self.predicates
|
||||
.iter()
|
||||
.filter(|p| p.in_where_clause())
|
||||
.last()
|
||||
.rfind(|&p| p.in_where_clause())
|
||||
.map_or(end, |p| p.span())
|
||||
.shrink_to_hi()
|
||||
.to(end)
|
||||
|
@ -719,7 +719,7 @@ fn get_nullable_type<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>) -> Option<Ty<'t
|
||||
Some(match *ty.kind() {
|
||||
ty::Adt(field_def, field_substs) => {
|
||||
let inner_field_ty = {
|
||||
let first_non_zst_ty = field_def
|
||||
let mut first_non_zst_ty = field_def
|
||||
.variants()
|
||||
.iter()
|
||||
.filter_map(|v| transparent_newtype_field(cx.tcx, v));
|
||||
@ -729,7 +729,7 @@ fn get_nullable_type<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>) -> Option<Ty<'t
|
||||
"Wrong number of fields for transparent type"
|
||||
);
|
||||
first_non_zst_ty
|
||||
.last()
|
||||
.next_back()
|
||||
.expect("No non-zst fields in transparent type.")
|
||||
.ty(tcx, field_substs)
|
||||
};
|
||||
|
@ -617,9 +617,9 @@ impl<'a: 'ast, 'ast> LateResolutionVisitor<'a, '_, 'ast> {
|
||||
.filter(|&sp| sp != base_error.span)
|
||||
.collect();
|
||||
|
||||
let start_span = bounds.iter().map(|bound| bound.span()).next().unwrap();
|
||||
let start_span = bounds[0].span();
|
||||
// `end_span` is the end of the poly trait ref (Foo + 'baz + Bar><)
|
||||
let end_span = bounds.iter().map(|bound| bound.span()).last().unwrap();
|
||||
let end_span = bounds.last().unwrap().span();
|
||||
// `last_bound_span` is the last bound of the poly trait ref (Foo + >'baz< + Bar)
|
||||
let last_bound_span = spans.last().cloned().unwrap();
|
||||
let mut multi_span: MultiSpan = spans.clone().into();
|
||||
|
@ -1309,10 +1309,8 @@ pub fn build_session(
|
||||
let warnings_allow = sopts
|
||||
.lint_opts
|
||||
.iter()
|
||||
.filter(|&&(ref key, _)| *key == "warnings")
|
||||
.map(|&(_, ref level)| *level == lint::Allow)
|
||||
.last()
|
||||
.unwrap_or(false);
|
||||
.rfind(|&&(ref key, _)| *key == "warnings")
|
||||
.map_or(false, |&(_, level)| level == lint::Allow);
|
||||
let cap_lints_allow = sopts.lint_cap.map_or(false, |cap| cap == lint::Allow);
|
||||
let can_emit_warnings = !(warnings_allow || cap_lints_allow);
|
||||
|
||||
|
@ -587,7 +587,7 @@ fn generate_macro_def_id_path(
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
let relative = fqp.iter().map(|elem| elem.to_string());
|
||||
let mut relative = fqp.iter().map(|elem| elem.to_string());
|
||||
let cstore = CStore::from_tcx(tcx);
|
||||
// We need this to prevent a `panic` when this function is used from intra doc links...
|
||||
if !cstore.has_crate_data(def_id.krate) {
|
||||
@ -607,7 +607,7 @@ fn generate_macro_def_id_path(
|
||||
let mut path = if is_macro_2 {
|
||||
once(crate_name.clone()).chain(relative).collect()
|
||||
} else {
|
||||
vec![crate_name.clone(), relative.last().unwrap()]
|
||||
vec![crate_name.clone(), relative.next_back().unwrap()]
|
||||
};
|
||||
if path.len() < 2 {
|
||||
// The minimum we can have is the crate name followed by the macro name. If shorter, then
|
||||
|
@ -2594,7 +2594,7 @@ impl<'test> TestCx<'test> {
|
||||
}
|
||||
None
|
||||
} else {
|
||||
let sline = line.split("///").last().unwrap_or("");
|
||||
let sline = line.rsplit("///").next().unwrap();
|
||||
let line = sline.trim_start();
|
||||
if line.starts_with("```") {
|
||||
if ignore {
|
||||
|
Loading…
Reference in New Issue
Block a user