Skip to main content

Module expr

Module expr 

Source
Expand description

Type checking expressions.

See rustc_hir_analysis::check for more context on type checking in general.

Re-exportsยง

use std::borrow::Cow; ๐Ÿ”’
use rustc_abi::FIRST_VARIANT; ๐Ÿ”’
use rustc_abi::FieldIdx; ๐Ÿ”’
use rustc_ast as ast; ๐Ÿ”’
use rustc_ast::util::parser::ExprPrecedence; ๐Ÿ”’
use rustc_attr_ir::find_attr; ๐Ÿ”’
use rustc_attr_ir::lang_items::LangItem; ๐Ÿ”’
use rustc_data_structures::fx::FxHashMap; ๐Ÿ”’
use rustc_data_structures::fx::FxHashSet; ๐Ÿ”’
use rustc_data_structures::thin_vec::ThinVec; ๐Ÿ”’
use rustc_data_structures::unord::UnordMap; ๐Ÿ”’
use rustc_errors::Applicability; ๐Ÿ”’
use rustc_errors::Diag; ๐Ÿ”’
use rustc_errors::ErrorGuaranteed; ๐Ÿ”’
use rustc_errors::MultiSpan; ๐Ÿ”’
use rustc_errors::StashKey; ๐Ÿ”’
use rustc_errors::Subdiagnostic; ๐Ÿ”’
use rustc_errors::listify; ๐Ÿ”’
use rustc_errors::pluralize; ๐Ÿ”’
use rustc_errors::struct_span_code_err; ๐Ÿ”’
use rustc_hir as hir; ๐Ÿ”’
use rustc_hir::def::CtorKind; ๐Ÿ”’
use rustc_hir::def::DefKind; ๐Ÿ”’
use rustc_hir::def::Res; ๐Ÿ”’
use rustc_hir::def_id::DefId; ๐Ÿ”’
use rustc_hir::ExprKind; ๐Ÿ”’
use rustc_hir::HirId; ๐Ÿ”’
use rustc_hir::QPath; ๐Ÿ”’
use rustc_hir::is_range_literal; ๐Ÿ”’
use rustc_hir_analysis::diagnostics::NoFieldOnType; ๐Ÿ”’
use rustc_hir_analysis::diagnostics::NoVariantNamed; ๐Ÿ”’
use rustc_hir_analysis::hir_ty_lowering::HirTyLowerer as _; ๐Ÿ”’
use rustc_infer::infer; ๐Ÿ”’
use rustc_infer::infer::RegionVariableOrigin; ๐Ÿ”’
use rustc_infer::traits::WellFormedLoc; ๐Ÿ”’
use rustc_infer::traits::query::NoSolution; ๐Ÿ”’
use rustc_middle::ty::adjustment::Adjust; ๐Ÿ”’
use rustc_middle::ty::adjustment::Adjustment; ๐Ÿ”’
use rustc_middle::ty::adjustment::AllowTwoPhase; ๐Ÿ”’
use rustc_middle::ty::error::ExpectedFound; ๐Ÿ”’
use rustc_middle::ty::error::TypeError; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::AdtKind; ๐Ÿ”’
use rustc_middle::ty::GenericArgsRef; ๐Ÿ”’
use rustc_middle::ty::Ty; ๐Ÿ”’
use rustc_middle::ty::TypeVisitableExt; ๐Ÿ”’
use rustc_middle::ty::Unnormalized; ๐Ÿ”’
use rustc_session::diagnostics::feature_err; ๐Ÿ”’
use rustc_span::edit_distance::find_best_match_for_name; ๐Ÿ”’
use rustc_span::hygiene::DesugaringKind; ๐Ÿ”’
use rustc_span::Ident; ๐Ÿ”’
use rustc_span::Span; ๐Ÿ”’
use rustc_span::Spanned; ๐Ÿ”’
use rustc_span::Symbol; ๐Ÿ”’
use rustc_span::bug; ๐Ÿ”’
use rustc_span::kw; ๐Ÿ”’
use rustc_span::span_bug; ๐Ÿ”’
use rustc_span::sym; ๐Ÿ”’
use rustc_trait_selection::infer::InferCtxtExt; ๐Ÿ”’
use rustc_trait_selection::traits; ๐Ÿ”’
use rustc_trait_selection::traits::ObligationCauseCode; ๐Ÿ”’
use rustc_trait_selection::traits::ObligationCtxt; ๐Ÿ”’
use tracing::debug; ๐Ÿ”’
use tracing::instrument; ๐Ÿ”’
use tracing::instrument; ๐Ÿ”’
use tracing::trace; ๐Ÿ”’
use crate::Expectation; ๐Ÿ”’
use crate::Expectation::ExpectCastableToType; ๐Ÿ”’
use crate::Expectation::ExpectHasType; ๐Ÿ”’
use crate::Expectation::NoExpectation; ๐Ÿ”’
use crate::callee::SplatLoweringInfo; ๐Ÿ”’
use crate::coercion::CoerceMany; ๐Ÿ”’
use crate::diagnostics::AddressOfTemporaryTaken; ๐Ÿ”’
use crate::diagnostics::BaseExpressionDoubleDot; ๐Ÿ”’
use crate::diagnostics::BaseExpressionDoubleDotAddExpr; ๐Ÿ”’
use crate::diagnostics::BaseExpressionDoubleDotRemove; ๐Ÿ”’
use crate::diagnostics::CantDereference; ๐Ÿ”’
use crate::diagnostics::ExprParenthesesNeeded; ๐Ÿ”’
use crate::diagnostics::FieldMultiplySpecifiedInInitializer; ๐Ÿ”’
use crate::diagnostics::FunctionalRecordUpdateOnNonStruct; ๐Ÿ”’
use crate::diagnostics::HelpUseLatestEdition; ๐Ÿ”’
use crate::diagnostics::NakedAsmOutsideNakedFn; ๐Ÿ”’
use crate::diagnostics::NoFieldOnVariant; ๐Ÿ”’
use crate::diagnostics::ReturnLikeStatementKind; ๐Ÿ”’
use crate::diagnostics::ReturnStmtOutsideOfFnBody; ๐Ÿ”’
use crate::diagnostics::StructExprNonExhaustive; ๐Ÿ”’
use crate::diagnostics::TypeMismatchFruTypo; ๐Ÿ”’
use crate::diagnostics::YieldExprOutsideOfCoroutine; ๐Ÿ”’
use crate::op::contains_let_in_chain; ๐Ÿ”’
use crate::BreakableCtxt; ๐Ÿ”’
use crate::CoroutineTypes; ๐Ÿ”’
use crate::Diverges; ๐Ÿ”’
use crate::FnCtxt; ๐Ÿ”’
use crate::GatherLocalsVisitor; ๐Ÿ”’
use crate::Needs; ๐Ÿ”’
use crate::TupleArgumentsFlag; ๐Ÿ”’
use crate::cast; ๐Ÿ”’
use crate::fatally_break_rust; ๐Ÿ”’
use crate::type_error_struct; ๐Ÿ”’
use rustc_errors::codes::*; ๐Ÿ”’