Skip to main content

Module expr

Module expr 

Source

Re-exportsΒ§

use core::mem; πŸ”’
use core::ops::Bound; πŸ”’
use core::ops::ControlFlow; πŸ”’
use ast::mut_visit; πŸ”’
use ast::mut_visit::MutVisitor; πŸ”’
use ast::token::IdentKind; πŸ”’
use ast::ForLoopKind; πŸ”’
use ast::MatchKind; πŸ”’
use ast::Pat; πŸ”’
use ast::Path; πŸ”’
use ast::PathSegment; πŸ”’
use ast::Recovered; πŸ”’
use rustc_ast::token; πŸ”’
use rustc_ast::token::Delimiter; πŸ”’
use rustc_ast::token::InvisibleOrigin; πŸ”’
use rustc_ast::token::MetaVarKind; πŸ”’
use rustc_ast::token::Token; πŸ”’
use rustc_ast::token::TokenKind; πŸ”’
use rustc_ast::util::case::Case; πŸ”’
use rustc_ast::util::classify; πŸ”’
use rustc_ast::util::parser::AssocOp; πŸ”’
use rustc_ast::util::parser::ExprPrecedence; πŸ”’
use rustc_ast::util::parser::Fixity; πŸ”’
use rustc_ast::util::parser::prec_let_scrutinee_needs_par; πŸ”’
use rustc_ast::visit::Visitor; πŸ”’
use rustc_ast::visit::walk_expr; πŸ”’
use rustc_ast as ast; πŸ”’
use rustc_ast::AnonConst; πŸ”’
use rustc_ast::Arm; πŸ”’
use rustc_ast::AssignOp; πŸ”’
use rustc_ast::AssignOpKind; πŸ”’
use rustc_ast::AttrStyle; πŸ”’
use rustc_ast::AttrVec; πŸ”’
use rustc_ast::BinOp; πŸ”’
use rustc_ast::BinOpKind; πŸ”’
use rustc_ast::BlockCheckMode; πŸ”’
use rustc_ast::CaptureBy; πŸ”’
use rustc_ast::ClosureBinder; πŸ”’
use rustc_ast::CoroutineKind; πŸ”’
use rustc_ast::DUMMY_NODE_ID; πŸ”’
use rustc_ast::Expr; πŸ”’
use rustc_ast::ExprField; πŸ”’
use rustc_ast::ExprKind; πŸ”’
use rustc_ast::FnDecl; πŸ”’
use rustc_ast::FnRetTy; πŸ”’
use rustc_ast::ForLoop; πŸ”’
use rustc_ast::Guard; πŸ”’
use rustc_ast::Label; πŸ”’
use rustc_ast::MacCall; πŸ”’
use rustc_ast::MetaItemLit; πŸ”’
use rustc_ast::Movability; πŸ”’
use rustc_ast::Param; πŸ”’
use rustc_ast::RangeLimits; πŸ”’
use rustc_ast::StmtKind; πŸ”’
use rustc_ast::Ty; πŸ”’
use rustc_ast::TyKind; πŸ”’
use rustc_ast::UnOp; πŸ”’
use rustc_ast::UnsafeBinderCastKind; πŸ”’
use rustc_ast::YieldKind; πŸ”’
use rustc_ast_pretty::pprust; πŸ”’
use rustc_errors::Applicability; πŸ”’
use rustc_errors::Diag; πŸ”’
use rustc_errors::PResult; πŸ”’
use rustc_errors::StashKey; πŸ”’
use rustc_errors::Subdiagnostic; πŸ”’
use rustc_lint_defs::builtin::BREAK_WITH_LABEL_AND_LOOP; πŸ”’
use rustc_literal_escaper::unescape_char; πŸ”’
use rustc_session::diagnostics::report_lit_error; πŸ”’
use rustc_span::edition::Edition; πŸ”’
use rustc_span::BytePos; πŸ”’
use rustc_span::ErrorGuaranteed; πŸ”’
use rustc_span::Ident; πŸ”’
use rustc_span::Pos; πŸ”’
use rustc_span::Span; πŸ”’
use rustc_span::Spanned; πŸ”’
use rustc_span::Symbol; πŸ”’
use rustc_span::kw; πŸ”’
use rustc_span::respan; πŸ”’
use rustc_span::sym; πŸ”’
use thin_vec::ThinVec; πŸ”’
use thin_vec::thin_vec; πŸ”’
use tracing::instrument; πŸ”’
use tracing::instrument; πŸ”’
use super::diagnostics::SnapshotParser; πŸ”’
use super::pat::CommaRecoveryMode; πŸ”’
use super::pat::Expected; πŸ”’
use super::pat::RecoverColon; πŸ”’
use super::pat::RecoverComma; πŸ”’
use super::ty::AllowPlus; πŸ”’
use super::ty::RecoverQPath; πŸ”’
use super::ty::RecoverReturnSign; πŸ”’
use super::AttrWrapper; πŸ”’
use super::BlockMode; πŸ”’
use super::ClosureSpans; πŸ”’
use super::ExpTokenPair; πŸ”’
use super::ForceCollect; πŸ”’
use super::Parser; πŸ”’
use super::PathStyle; πŸ”’
use super::Restrictions; πŸ”’
use super::SemiColonMode; πŸ”’
use super::SeqSep; πŸ”’
use super::TokenType; πŸ”’
use super::Trailing; πŸ”’
use super::UsePreAttrPos; πŸ”’
use crate::exp; πŸ”’
use crate::maybe_recover_from_interpolated_ty_qpath; πŸ”’

ModulesΒ§

diagnostics πŸ”’

StructsΒ§

CondChecker πŸ”’
Visitor to check for invalid use of ExprKind::Let that can’t easily be caught in parsing. For example:

EnumsΒ§

DestructuredFloat πŸ”’
LetChainsPolicy
Whether let chains are allowed on all editions, or it’s edition dependent (allowed only on 2024 and later). In case of edition dependence, specify the currently present edition.

FunctionsΒ§

could_be_unclosed_char_literal πŸ”’
Could this lifetime/label be an unclosed char literal? For example, 'a could be, but 'abc could not.