Re-exportsΒ§
use std::ops::ControlFlow;πuse ast::visit::Visitor;πuse hir::def::DefKind;πuse rustc_ast as ast;πuse rustc_ast::AssocItemKind;πuse rustc_ast::Delegation;πuse rustc_ast::DelegationSource;πuse rustc_ast::Item;πuse rustc_ast::ItemKind;πuse rustc_ast::NodeId;πuse rustc_data_structures::fx::FxHashSet;πuse rustc_data_structures::fx::FxIndexMap;πuse rustc_data_structures::fx::FxIndexSet;πuse rustc_hir as hir;πuse rustc_middle::middle::resolve as mid_res;πuse rustc_middle::middle::resolve::AstOwner;πuse rustc_middle::middle::resolve::DelegationInherentFnKind;πuse rustc_middle::middle::resolve::TypeRelativeDelegationRes;πuse rustc_middle::ty;πuse rustc_middle::ty::AssocKind;πuse rustc_middle::ty::Ty;πuse rustc_middle::ty::TyCtxt;πuse rustc_middle::ty::TypeSuperVisitable;πuse rustc_middle::ty::TypeVisitable;πuse rustc_middle::ty::TypeVisitor;πuse rustc_span::def_id::DefId;πuse rustc_span::def_id::LocalDefId;πuse rustc_span::ErrorGuaranteed;πuse rustc_span::Span;πuse crate::delegation::generics::GenericsGenerationResults;πuse crate::delegation::resolution::resolver::DelegationResolver;πuse crate::diagnostics::AmbiguousDelegationToInherentImpl;πuse crate::diagnostics::CycleInDelegationSignatureResolution;πuse crate::diagnostics::DelegationAttemptedBlockWithDefsDeletion;πuse crate::diagnostics::DelegationAttemptedBlockWithDefsRelowering;πuse crate::diagnostics::DelegationBlockSpecifiedWhenNoParams;πuse crate::diagnostics::UnresolvedDelegationCallee;π
ModulesΒ§
- resolver π
StructsΒ§
- Delegation
Resolution π - Param
Info π - Summary info about function parameters.
- SigMapping π
FunctionsΒ§
- resolve_
type_ πrelative_ delegations - Simple (hack or heuristic) resolution of some delegations to inherent impls
while correct resolution through
ProbeContextis not available during AST -> HIR lowering due to query cycles. Successful resolutions from this heuristics are not a subset of successful resolutions from the correct approach, if we want to stabilize delegations to inherent impls with this approach we need a second pass in type checking (i.e., when thereβs no cycles) that makes sure that resolutions from the heuristic match the correct resolutions, or report errors otherwise. FIXME(fn_delegation): correct resolution throughProbeContextengine