Skip to content

Commit 0e63875

Browse files
authored
use even more first()/last() (#815)
1 parent bf6d619 commit 0e63875

File tree

1 file changed

+7
-20
lines changed

1 file changed

+7
-20
lines changed

librubyfmt/src/format_prism.rs

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,8 +1467,7 @@ fn format_else_node<'src>(ps: &mut ParserState<'src>, else_node: prism::ElseNode
14671467
.statements()
14681468
.expect("Statements must be present in a ternary")
14691469
.body()
1470-
.iter()
1471-
.next()
1470+
.first()
14721471
.expect("Ternaries cannot have multiple statements"),
14731472
);
14741473
});
@@ -1817,8 +1816,7 @@ fn format_call_node<'src>(
18171816
ps.emit_ident(" = ");
18181817
let value = arguments
18191818
.arguments()
1820-
.iter()
1821-
.next()
1819+
.first()
18221820
.expect("Attribute writes must have a value");
18231821
ps.with_start_of_line(false, |ps| format_node(ps, value));
18241822
}
@@ -1849,7 +1847,7 @@ fn format_call_node<'src>(
18491847
.and_then(|b| b.as_block_argument_node())
18501848
.is_none()
18511849
{
1852-
let first_arg = arguments.arguments().iter().next().unwrap();
1850+
let first_arg = arguments.arguments().first().unwrap();
18531851
unwrap_single_arg_paren(&first_arg)
18541852
} else {
18551853
None
@@ -1986,13 +1984,7 @@ fn format_call_node<'src>(
19861984
method_name,
19871985
// For infix operators, we still get an ArgumentsNode, but it will
19881986
// always be an argument list of a single node.
1989-
call_node
1990-
.arguments()
1991-
.unwrap()
1992-
.arguments()
1993-
.iter()
1994-
.next()
1995-
.unwrap(),
1987+
call_node.arguments().unwrap().arguments().first().unwrap(),
19961988
);
19971989
});
19981990
} else {
@@ -3715,8 +3707,7 @@ fn format_conditional_node<'src>(
37153707
.statements()
37163708
.expect("Begin modifiers must have a StatementsNode")
37173709
.body()
3718-
.iter()
3719-
.next()
3710+
.first()
37203711
.expect("Begin modifiers must have a single statement")
37213712
.as_begin_node()
37223713
.expect("Statement in a begin modifier must be a BeginNode");
@@ -3858,8 +3849,7 @@ fn format_if_node<'src>(ps: &mut ParserState<'src>, if_node: prism::IfNode<'src>
38583849
.statements()
38593850
.expect("Ternaries must have a `statements` branch")
38603851
.body()
3861-
.iter()
3862-
.next()
3852+
.first()
38633853
.expect("There must be exactly one statement inside a ternary branch"),
38643854
);
38653855
format_node(
@@ -4783,7 +4773,6 @@ fn format_true_node<'src>(ps: &mut ParserState<'src>, true_node: prism::TrueNode
47834773
fn format_undef_node<'src>(ps: &mut ParserState<'src>, undef_node: prism::UndefNode<'src>) {
47844774
let names = undef_node.names();
47854775
let end_offset = names
4786-
.iter()
47874776
.last()
47884777
.expect("`undef` must have at least one argument")
47894778
.location()
@@ -4817,7 +4806,6 @@ fn format_when_node<'src>(ps: &mut ParserState<'src>, when_node: prism::WhenNode
48174806
when_node.conditions(),
48184807
when_node
48194808
.conditions()
4820-
.iter()
48214809
.last()
48224810
.unwrap()
48234811
.location()
@@ -4860,7 +4848,6 @@ fn format_yield_node<'src>(ps: &mut ParserState<'src>, yield_node: prism::YieldN
48604848
args.arguments().len() == 1
48614849
&& args
48624850
.arguments()
4863-
.iter()
48644851
.last()
48654852
.unwrap()
48664853
.as_keyword_hash_node()
@@ -4978,7 +4965,7 @@ fn unwrap_single_arg_paren<'src>(node: &prism::Node<'src>) -> Option<prism::Node
49784965
return None;
49794966
}
49804967

4981-
let inner = statements.body().iter().next()?;
4968+
let inner = statements.body().first()?;
49824969

49834970
// Don't unwrap if the inner expression contains keywords that would change semantics
49844971
if is_keyword_expression(&inner) {

0 commit comments

Comments
 (0)