Lines Matching full:let

53     /// let expr: Expr = /* ... */;
103 /// // assigning `*discriminant.base` without an `if let`.
104 /// if let Expr::Tuple(base) = *discriminant.base {
179 /// A `let` guard: `let Some(x) = opt`.
180 Let(ExprLet),
484 /// A `let` guard: `let Some(x) = opt`.
488 pub let_token: Token![let],
727 /// while let Expr::Paren(paren) = e {
733 /// let mut e: Expr = parse_quote! { ((1 + 1)) };
767 /// let _ = *S {};
846 /// # let result = ();
847 /// # let guard = false;
848 /// # let cond = true;
849 /// # let f = true;
850 /// # let g = f;
852 /// let _ = match result {
860 /// # let cond = true;
861 /// # let f = ();
862 /// # let g = f;
864 /// let _ = || {
872 /// # let cond = true;
873 /// # let f = || ();
874 /// # let g = f;
876 /// let _ = [if cond { f } else { g } ()];
947 | Expr::Let(ExprLet { attrs, .. }) in replace_attrs()
1128 /// # let n = 0;
1242 let mut attrs = input.call(expr_attrs)?; in parse_with_earlier_boundary_rule()
1243 let mut expr = if input.peek(token::Group) { in parse_with_earlier_boundary_rule()
1244 let allow_struct = AllowStruct(true); in parse_with_earlier_boundary_rule()
1245 let atom = expr_group(input, allow_struct)?; in parse_with_earlier_boundary_rule()
1274 let allow_struct = AllowStruct(true); in parse_with_earlier_boundary_rule()
1282 let allow_struct = AllowStruct(true); in parse_with_earlier_boundary_rule()
1292 let allow_struct = AllowStruct(true); in parse_with_earlier_boundary_rule()
1319 let ahead = input.fork(); in parse_expr()
1320 if let Expr::Range(_) = lhs { in parse_expr()
1323 } else if let Ok(op) = ahead.parse::<BinOp>() { in parse_expr()
1324 let precedence = Precedence::of_binop(&op); in parse_expr()
1329 if let Expr::Range(_) = lhs { in parse_expr()
1334 if let Expr::Binary(lhs) = &lhs { in parse_expr()
1341 let right = parse_binop_rhs(input, allow_struct, precedence)?; in parse_expr()
1356 let eq_token: Token![=] = input.parse()?; in parse_expr()
1357 let right = parse_binop_rhs(input, allow_struct, Precedence::Assign)?; in parse_expr()
1365 let limits: RangeLimits = input.parse()?; in parse_expr()
1366 let end = parse_range_end(input, &limits, allow_struct)?; in parse_expr()
1374 let as_token: Token![as] = input.parse()?; in parse_expr()
1375 let allow_plus = false; in parse_expr()
1376 let allow_group_generic = false; in parse_expr()
1377 let ty = ty::parsing::ambig_ty(input, allow_plus, allow_group_generic)?; in parse_expr()
1395 let ahead = input.fork(); in parse_expr()
1396 if let Ok(op) = ahead.parse::<BinOp>() { in parse_expr()
1397 let precedence = Precedence::of_binop(&op); in parse_expr()
1402 if let Expr::Binary(lhs) = &lhs { in parse_expr()
1409 let right = parse_binop_rhs(input, precedence)?; in parse_expr()
1417 let as_token: Token![as] = input.parse()?; in parse_expr()
1418 let allow_plus = false; in parse_expr()
1419 let allow_group_generic = false; in parse_expr()
1420 let ty = ty::parsing::ambig_ty(input, allow_plus, allow_group_generic)?; in parse_expr()
1440 let mut rhs = unary_expr( in parse_binop_rhs()
1446 let next = peek_precedence(input); in parse_binop_rhs()
1448 let cursor = input.cursor(); in parse_binop_rhs()
1471 if let Ok(op) = input.fork().parse() { in peek_precedence()
1489 let lhs = unary_expr( in ambiguous_expr()
1505 let mut attrs = Vec::new(); in expr_attrs()
1518 let begin = input.fork(); in unary_expr()
1519 let attrs = input.call(expr_attrs)?; in unary_expr()
1525 let and_token: Token![&] = input.parse()?; in unary_expr()
1526 let raw: Option<Token![raw]> = if input.peek(Token![raw]) in unary_expr()
1533 let mutability: Option<Token![mut]> = input.parse()?; in unary_expr()
1534 let const_token: Option<Token![const]> = if raw.is_some() && mutability.is_none() { in unary_expr()
1539 let expr = Box::new(unary_expr(input, allow_struct)?); in unary_expr()
1540 if let Some(raw) = raw { in unary_expr()
1599 let atom = atom_expr(input, allow_struct)?; in trailer_expr()
1600 let mut e = trailer_helper(input, atom)?; in trailer_expr()
1602 if let Expr::Verbatim(tokens) = &mut e { in trailer_expr()
1605 if let Expr::Range(range) = e { in trailer_expr()
1606 let spans: &[Span] = match &range.limits { in trailer_expr()
1616 let inner_attrs = e.replace_attrs(Vec::new()); in trailer_expr()
1628 let content; in trailer_helper()
1642 let mut dot_token: Token![.] = input.parse()?; in trailer_helper()
1644 let float_token: Option<LitFloat> = input.parse()?; in trailer_helper()
1645 if let Some(float_token) = float_token { in trailer_helper()
1651 let await_token: Option<Token![await]> = input.parse()?; in trailer_helper()
1652 if let Some(await_token) = await_token { in trailer_helper()
1662 let member: Member = input.parse()?; in trailer_helper()
1663 let turbofish = if member.is_named() && input.peek(Token![::]) { in trailer_helper()
1670 if let Member::Named(method) = member { in trailer_helper()
1671 let content; in trailer_helper()
1692 let content; in trailer_helper()
1719 let mut e = atom_expr(input)?; in trailer_expr()
1723 let content; in trailer_expr()
1734 let mut dot_token: Token![.] = input.parse()?; in trailer_expr()
1736 let float_token: Option<LitFloat> = input.parse()?; in trailer_expr()
1737 if let Some(float_token) = float_token { in trailer_expr()
1743 let member: Member = input.parse()?; in trailer_expr()
1744 let turbofish = if member.is_named() && input.peek(Token![::]) { in trailer_expr()
1745 let colon2_token: Token![::] = input.parse()?; in trailer_expr()
1746 let turbofish = in trailer_expr()
1754 if let Member::Named(method) = member { in trailer_expr()
1755 let content; in trailer_expr()
1776 let content; in trailer_expr()
1839 } else if input.peek(Token![let]) { in atom_expr()
1840 expr_let(input, allow_struct).map(Expr::Let) in atom_expr()
1872 let the_label: Label = input.parse()?; in atom_labeled()
1873 let mut expr = if input.peek(Token![while]) { in atom_labeled()
1915 let scan = input.fork(); in atom_expr()
1916 let content; in atom_expr()
1919 let expr_block = verbatim::between(input, &scan); in atom_expr()
1930 let begin = input.fork(); in expr_builtin()
1936 let args; in expr_builtin()
1947 let expr_style = true; in path_or_macro_or_struct()
1948 let (qself, path) = path::parsing::qpath(input, expr_style)?; in path_or_macro_or_struct()
1969 let bang_token: Token![!] = input.parse()?; in rest_of_path_or_macro_or_struct()
1970 let (delimiter, tokens) = mac::parse_delimiter(input)?; in rest_of_path_or_macro_or_struct()
1983 let allow_struct = (true,); in rest_of_path_or_macro_or_struct()
2006 let content; in paren_or_tuple()
2007 let paren_token = parenthesized!(content in input); in paren_or_tuple()
2016 let first: Expr = content.parse()?; in paren_or_tuple()
2025 let mut elems = Punctuated::new(); in paren_or_tuple()
2028 let punct = content.parse()?; in paren_or_tuple()
2033 let value = content.parse()?; in paren_or_tuple()
2045 let content; in array_or_repeat()
2046 let bracket_token = bracketed!(content in input); in array_or_repeat()
2055 let first: Expr = content.parse()?; in array_or_repeat()
2057 let mut elems = Punctuated::new(); in array_or_repeat()
2060 let punct = content.parse()?; in array_or_repeat()
2065 let value = content.parse()?; in array_or_repeat()
2074 let semi_token: Token![;] = content.parse()?; in array_or_repeat()
2075 let len: Expr = content.parse()?; in array_or_repeat()
2092 let content; in parse()
2093 let bracket_token = bracketed!(content in input); in parse()
2094 let mut elems = Punctuated::new(); in parse()
2097 let first: Expr = content.parse()?; in parse()
2102 let punct = content.parse()?; in parse()
2118 let content; in parse()
2131 while let Expr::Group(group) = expr { in continue_parsing_early()
2162 let group = crate::group::parse_group(input)?; in expr_group()
2163 let mut inner: Expr = group.content.parse()?; in expr_group()
2167 let grouped_len = expr.path.segments.len(); in expr_group()
2196 let content; in parse()
2209 let allow_struct = AllowStruct(true); in parse()
2222 let lhs = unary_expr(input, allow_struct)?; in expr_let()
2232 let attrs = input.call(Attribute::parse_outer)?; in parse()
2234 let mut clauses = Vec::new(); in parse()
2235 let mut expr; in parse()
2237 let if_token: Token![if] = input.parse()?; in parse()
2238 let cond = input.call(Expr::parse_without_eager_brace)?; in parse()
2239 let then_branch: Block = input.parse()?; in parse()
2253 let else_token: Token![else] = input.parse()?; in parse()
2254 let lookahead = input.lookahead1(); in parse()
2273 while let Some(mut prev) = clauses.pop() { in parse()
2297 let mut attrs = input.call(Attribute::parse_outer)?; in parse()
2298 let label: Option<Label> = input.parse()?; in parse()
2299 let for_token: Token![for] = input.parse()?; in parse()
2301 let pat = Pat::parse_multi_with_leading_vert(input)?; in parse()
2303 let in_token: Token![in] = input.parse()?; in parse()
2304 let expr: Expr = input.call(Expr::parse_without_eager_brace)?; in parse()
2306 let content; in parse()
2307 let brace_token = braced!(content in input); in parse()
2309 let stmts = content.call(Block::parse_within)?; in parse()
2327 let mut attrs = input.call(Attribute::parse_outer)?; in parse()
2328 let label: Option<Label> = input.parse()?; in parse()
2329 let loop_token: Token![loop] = input.parse()?; in parse()
2331 let content; in parse()
2332 let brace_token = braced!(content in input); in parse()
2334 let stmts = content.call(Block::parse_within)?; in parse()
2349 let mut attrs = input.call(Attribute::parse_outer)?; in parse()
2350 let match_token: Token![match] = input.parse()?; in parse()
2351 let expr = Expr::parse_without_eager_brace(input)?; in parse()
2353 let content; in parse()
2354 let brace_token = braced!(content in input); in parse()
2357 let arms = Arm::parse_multiple(&content)?; in parse()
2380 let mut expr: Expr = input.parse()?;
2412 let attrs = Vec::new(); in parse()
2413 let allow_struct = AllowStruct(true); in parse()
2435 let allow_struct = AllowStruct(true); in parse()
2444 let allow_struct = AllowStruct(true); in parse()
2459 let allow_struct = AllowStruct(true); in parse()
2473 let allow_struct = AllowStruct(true); in parse()
2498 let begin = input.fork(); in expr_become()
2536 let lifetimes: Option<BoundLifetimes> = input.parse()?; in expr_closure()
2537 let constness: Option<Token![const]> = input.parse()?; in expr_closure()
2538 let movability: Option<Token![static]> = input.parse()?; in expr_closure()
2539 let asyncness: Option<Token![async]> = input.parse()?; in expr_closure()
2540 let capture: Option<Token![move]> = input.parse()?; in expr_closure()
2541 let or1_token: Token![|] = input.parse()?; in expr_closure()
2543 let mut inputs = Punctuated::new(); in expr_closure()
2548 let value = closure_arg(input)?; in expr_closure()
2553 let punct: Token![,] = input.parse()?; in expr_closure()
2557 let or2_token: Token![|] = input.parse()?; in expr_closure()
2559 let (output, body) = if input.peek(Token![->]) { in expr_closure()
2560 let arrow_token: Token![->] = input.parse()?; in expr_closure()
2561 let ty: Type = input.parse()?; in expr_closure()
2562 let body: Block = input.parse()?; in expr_closure()
2563 let output = ReturnType::Type(arrow_token, Box::new(ty)); in expr_closure()
2564 let block = Expr::Block(ExprBlock { in expr_closure()
2571 let body = ambiguous_expr(input, allow_struct)?; in expr_closure()
2605 let attrs = input.call(Attribute::parse_outer)?; in closure_arg()
2606 let mut pat = Pat::parse_single(input)?; in closure_arg()
2643 let mut attrs = input.call(Attribute::parse_outer)?; in parse()
2644 let label: Option<Label> = input.parse()?; in parse()
2645 let while_token: Token![while] = input.parse()?; in parse()
2646 let cond = Expr::parse_without_eager_brace(input)?; in parse()
2648 let content; in parse()
2649 let brace_token = braced!(content in input); in parse()
2651 let stmts = content.call(Block::parse_within)?; in parse()
2667 let const_token: Token![const] = input.parse()?; in parse()
2669 let content; in parse()
2670 let brace_token = braced!(content in input); in parse()
2671 let inner_attrs = content.call(Attribute::parse_inner)?; in parse()
2672 let stmts = content.call(Block::parse_within)?; in parse()
2719 let break_token: Token![break] = input.parse()?; in expr_break()
2721 let ahead = input.fork(); in expr_break()
2722 let label: Option<Lifetime> = ahead.parse()?; in expr_break()
2726 let _: Expr = input.parse()?; in expr_break()
2727 let start_span = label.unwrap().apostrophe; in expr_break()
2728 let end_span = input.cursor().prev_span(); in expr_break()
2737 let expr = if Expr::peek(input) && (allow_struct.0 || !input.peek(token::Brace)) { in expr_break()
2754 let attrs = input.call(Attribute::parse_outer)?; in parse()
2755 let member: Member = input.parse()?; in parse()
2756 let (colon_token, value) = if input.peek(Token![:]) || !member.is_named() { in parse()
2757 let colon_token: Token![:] = input.parse()?; in parse()
2758 let value: Expr = input.parse()?; in parse()
2760 } else if let Member::Named(ident) = &member { in parse()
2761 let value = Expr::Path(ExprPath { in parse()
2783 let expr_style = true; in parse()
2784 let (qself, path) = path::parsing::qpath(input, expr_style)?; in parse()
2794 let content; in expr_struct_helper()
2795 let brace_token = braced!(content in input); in expr_struct_helper()
2797 let mut fields = Punctuated::new(); in expr_struct_helper()
2819 let punct: Token![,] = content.parse()?; in expr_struct_helper()
2838 let unsafe_token: Token![unsafe] = input.parse()?; in parse()
2840 let content; in parse()
2841 let brace_token = braced!(content in input); in parse()
2842 let inner_attrs = content.call(Attribute::parse_inner)?; in parse()
2843 let stmts = content.call(Block::parse_within)?; in parse()
2857 let mut attrs = input.call(Attribute::parse_outer)?; in parse()
2858 let label: Option<Label> = input.parse()?; in parse()
2860 let content; in parse()
2861 let brace_token = braced!(content in input); in parse()
2863 let stmts = content.call(Block::parse_within)?; in parse()
2875 let limits: RangeLimits = input.parse()?; in expr_range()
2876 let end = parse_range_end(input, &limits, allow_struct)?; in expr_range()
2916 let end = parse_binop_rhs(input, allow_struct, Precedence::Range)?; in parse_range_end()
2925 let lookahead = input.lookahead1(); in parse()
2926 let dot_dot = lookahead.peek(Token![..]); in parse()
2927 let dot_dot_eq = dot_dot && lookahead.peek(Token![..=]); in parse()
2928 let dot_dot_dot = dot_dot && input.peek(Token![...]); in parse()
2942 let lookahead = input.lookahead1(); in parse_obsolete()
2943 let dot_dot = lookahead.peek(Token![..]); in parse_obsolete()
2944 let dot_dot_eq = dot_dot && lookahead.peek(Token![..=]); in parse_obsolete()
2945 let dot_dot_dot = dot_dot && input.peek(Token![...]); in parse_obsolete()
2949 let dot3: Token![...] = input.parse()?; in parse_obsolete()
2963 let attrs = Vec::new(); in parse()
2965 let attrs = input.call(Attribute::parse_outer)?; in parse()
2967 let expr_style = true; in parse()
2968 let (qself, path) = path::parsing::qpath(input, expr_style)?; in parse()
2990 let mut arms = Vec::new(); in parse_multiple()
3002 let requires_comma; in parse()
3008 let if_token: Token![if] = input.parse()?; in parse()
3009 let guard: Expr = input.parse()?; in parse()
3017 let body = Expr::parse_with_earlier_boundary_rule(input)?; in parse()
3035 let lit: LitInt = input.parse()?; in parse()
3051 let float_token = float.token(); in multi_index()
3052 let float_span = float_token.span(); in multi_index()
3053 let mut float_repr = float_token.to_string(); in multi_index()
3054 let trailing_dot = float_repr.ends_with('.'); in multi_index()
3059 let mut offset = 0; in multi_index()
3061 let mut index: Index = in multi_index()
3063 let part_end = offset + part.len(); in multi_index()
3066 let base = mem::replace(e, Expr::PLACEHOLDER); in multi_index()
3074 let dot_span = float_token in multi_index()
3088 let lookahead = input.lookahead1(); in parse()
3100 let kind = if input.peek(Token![.]) && !input.peek(Token![..]) { in check_cast()
3117 let msg = format!("casts cannot be followed by {}", kind); in check_cast()
3186 let do_print_expr = |tokens: &mut TokenStream| print_expr(expr, tokens, fixup); in print_subexpression()
3197 let needs_group = fixup.parenthesize(expr); in print_expr()
3199 let needs_group = false; in print_expr()
3205 let do_print_expr = |tokens: &mut TokenStream| match expr { in print_expr()
3237 Expr::Let(e) => print_expr_let(e, tokens, fixup), in print_expr()
3305 let needs_group = !e.attrs.is_empty(); in print_expr_assign()
3310 let do_print_expr = |tokens: &mut TokenStream| { in print_expr_assign()
3311 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_operator( in print_expr_assign()
3355 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_dot(&e.base); in print_expr_await()
3376 let needs_group = !e.attrs.is_empty(); in print_expr_binary()
3381 let do_print_expr = |tokens: &mut TokenStream| { in print_expr_binary()
3382 let binop_prec = Precedence::of_binop(&e.op); in print_expr_binary()
3383 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_operator( in print_expr_binary()
3404 let left_needs_group = match binop_prec { in print_expr_binary()
3410 let right_fixup = fixup.rightmost_subexpression_fixup( in print_expr_binary()
3418 let right_needs_group = binop_prec != Precedence::Assign in print_expr_binary()
3459 if let Some(value) = &e.expr { in print_expr_break()
3481 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_operator( in print_expr_call()
3489 let needs_group = if let Expr::Field(func) = &*e.func { in print_expr_call()
3511 let needs_group = !e.attrs.is_empty(); in print_expr_cast()
3516 let do_print_expr = |tokens: &mut TokenStream| { in print_expr_cast()
3517 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_operator( in print_expr_cast()
3604 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_dot(&e.base); in print_expr_field()
3648 let mut expr = self; in to_tokens()
3654 let (else_token, else_) = match &expr.else_branch { in to_tokens()
3690 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_operator( in print_expr_index()
3732 let (right_prec, right_fixup) = fixup.rightmost_subexpression(&e.expr, Precedence::Let); in print_expr_let()
3733 print_subexpression(&e.expr, right_prec < Precedence::Let, tokens, right_fixup); in print_expr_let()
3779 let is_last = i == self.arms.len() - 1; in to_tokens()
3800 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_dot(&e.receiver); in print_expr_method_call()
3809 if let Some(turbofish) = &e.turbofish { in print_expr_method_call()
3851 let needs_group = !e.attrs.is_empty(); in print_expr_range()
3856 let do_print_expr = |tokens: &mut TokenStream| { in print_expr_range()
3857 if let Some(start) = &e.start { in print_expr_range()
3858 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_operator( in print_expr_range()
3867 if let Some(end) = &e.end { in print_expr_range()
3868 let right_fixup = in print_expr_range()
3870 let right_prec = right_fixup.rightmost_subexpression_precedence(end); in print_expr_range()
3896 let (right_prec, right_fixup) = fixup.rightmost_subexpression(&e.expr, Precedence::Prefix); in print_expr_raw_addr()
3916 let (right_prec, right_fixup) = fixup.rightmost_subexpression( in print_expr_reference()
3954 if let Some(expr) = &e.expr { in print_expr_return()
3970 if let Some(dot2_token) = &self.dot2_token { in to_tokens()
3991 let (left_prec, left_fixup) = fixup.leftmost_subexpression_with_dot(&e.expr); in print_expr_try()
4036 let (right_prec, right_fixup) = fixup.rightmost_subexpression( in print_expr_unary()
4089 if let Some(expr) = &e.expr { in print_expr_yield()
4104 if let Some((if_token, guard)) = &self.guard { in to_tokens()
4119 if let Some(colon_token) = &self.colon_token { in to_tokens()
4129 let mut lit = Literal::i64_unsuffixed(i64::from(self.index)); in to_tokens()