Skip to main content

Module opaque_types

Module opaque_types 

Source

Re-exportsยง

use rustc_data_structures::fx::FxIndexMap; ๐Ÿ”’
use rustc_hir::OpaqueTyOrigin; ๐Ÿ”’
use rustc_hir::def_id::LocalDefId; ๐Ÿ”’
use rustc_infer::infer::outlives::env::OutlivesEnvironment; ๐Ÿ”’
use rustc_infer::infer::InferCtxt; ๐Ÿ”’
use rustc_infer::infer::TyCtxtInferExt; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::DefiningScopeKind; ๐Ÿ”’
use rustc_middle::ty::GenericArgKind; ๐Ÿ”’
use rustc_middle::ty::GenericArgs; ๐Ÿ”’
use rustc_middle::ty::OpaqueTypeKey; ๐Ÿ”’
use rustc_middle::ty::Ty; ๐Ÿ”’
use rustc_middle::ty::TyCtxt; ๐Ÿ”’
use rustc_middle::ty::TypeVisitableExt; ๐Ÿ”’
use rustc_middle::ty::TypingMode; ๐Ÿ”’
use rustc_middle::ty::fold_regions; ๐Ÿ”’
use rustc_span::ErrorGuaranteed; ๐Ÿ”’
use rustc_span::Span; ๐Ÿ”’
use crate::diagnostics::NonGenericOpaqueTypeParam; ๐Ÿ”’
use crate::regions::OutlivesEnvironmentBuildExt; ๐Ÿ”’
use crate::traits::ObligationCtxt; ๐Ÿ”’

Structsยง

LazyOpaqueTyEnv ๐Ÿ”’
Computes if an opaque type requires a lifetime parameter to be equal to another one or to the 'static lifetime. These requirements are derived from the explicit and implied bounds.

Enumsยง

NonDefiningUseReason

Functionsยง

opaque_type_has_defining_use_args
Opaque type parameter validity check as documented in the rustc-dev-guide chapter. With the new solver, uses which fail this check are simply treated as non-defining and we only emit an error if no defining use exists.
report_item_does_not_constrain_error