Skip to main content

Module analyse

Module analyse 

Source
Expand description

An infrastructure to mechanically analyse proof trees.

It is unavoidable that this representation is somewhat lossy as it should hide quite a few semantically relevant things, e.g. canonicalization and the order of nested goals.

@lcnr: However, a lot of the weirdness here is not strictly necessary and could be improved in the future. This is mostly good enough for coherence right now and was annoying to implement, so I am leaving it as is until we start using it for something else.

Re-exportsยง

use std::assert_matches; ๐Ÿ”’
use rustc_infer::infer::InferCtxt; ๐Ÿ”’
use rustc_macros::extension; ๐Ÿ”’
use rustc_middle::traits::solve::Certainty; ๐Ÿ”’
use rustc_middle::traits::solve::Goal; ๐Ÿ”’
use rustc_middle::traits::solve::GoalSource; ๐Ÿ”’
use rustc_middle::traits::solve::NoSolution; ๐Ÿ”’
use rustc_middle::traits::solve::QueryResult; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::RequiredDepth; ๐Ÿ”’
use rustc_middle::ty::TyCtxt; ๐Ÿ”’
use rustc_middle::ty::VisitorResult; ๐Ÿ”’
use rustc_middle::ty::try_visit; ๐Ÿ”’
use rustc_next_trait_solver::canonical::instantiate_canonical_state; ๐Ÿ”’
use rustc_next_trait_solver::solve::MaybeCause; ๐Ÿ”’
use rustc_next_trait_solver::solve::MaybeInfo; ๐Ÿ”’
use rustc_next_trait_solver::solve::SolverDelegateEvalExt as _; ๐Ÿ”’
use rustc_next_trait_solver::solve::inspect; ๐Ÿ”’
use rustc_span::Span; ๐Ÿ”’
use rustc_span::bug; ๐Ÿ”’
use tracing::instrument; ๐Ÿ”’
use tracing::instrument; ๐Ÿ”’
use crate::solve::delegate::SolverDelegate; ๐Ÿ”’

Structsยง

InspectCandidate
InspectConfig
InspectGoal

Traitsยง

InferCtxtProofTreeExt
ProofTreeVisitor
The public API to interact with proof trees.