Struct rustc::traits::SelectionContext
[−]
[src]
pub struct SelectionContext<'cx, 'gcx: 'cx + 'tcx, 'tcx: 'cx> { /* fields omitted */ }
🔬 This is a nightly-only experimental API. (
rustc_private
)Methods
impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx>
[src]
fn new(infcx: &'cx InferCtxt<'cx, 'gcx, 'tcx>)
-> SelectionContext<'cx, 'gcx, 'tcx>
-> SelectionContext<'cx, 'gcx, 'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn intercrate(infcx: &'cx InferCtxt<'cx, 'gcx, 'tcx>)
-> SelectionContext<'cx, 'gcx, 'tcx>
-> SelectionContext<'cx, 'gcx, 'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn infcx(&self) -> &'cx InferCtxt<'cx, 'gcx, 'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn tcx(&self) -> TyCtxt<'cx, 'gcx, 'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn param_env(&self) -> &'cx ParameterEnvironment<'gcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn closure_typer(&self) -> &'cx InferCtxt<'cx, 'gcx, 'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn projection_mode(&self) -> Reveal
🔬 This is a nightly-only experimental API. (
rustc_private
)fn select(&mut self,
obligation: &TraitObligation<'tcx>)
-> SelectionResult<'tcx, Selection<'tcx>>
obligation: &TraitObligation<'tcx>)
-> SelectionResult<'tcx, Selection<'tcx>>
🔬 This is a nightly-only experimental API. (
rustc_private
)Attempts to satisfy the obligation. If successful, this will affect the surrounding type environment by performing unification.
fn evaluate_obligation(&mut self,
obligation: &PredicateObligation<'tcx>)
-> bool
obligation: &PredicateObligation<'tcx>)
-> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)Evaluates whether the obligation obligation
can be satisfied (by any means).
fn evaluate_obligation_conservatively(&mut self,
obligation: &PredicateObligation<'tcx>)
-> bool
obligation: &PredicateObligation<'tcx>)
-> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)Evaluates whether the obligation obligation
can be satisfied,
and returns false
if not certain. However, this is not entirely
accurate if inference variables are involved.