instantiate_and_apply_query_response in rustc_next_trait_solver::canonical - Rust
Description: After calling a canonical query, we apply the constraints returned by the query using this function.

Skip to main content

## instantiate_and_apply_query_response

# Function instantiate_and_apply_query_response

Source

    pub(crate) fn instantiate_and_apply_query_response<D, I>(
        delegate: &D,
        param_env: I::ParamEnv,
        original_values: &[I::GenericArg],
        response: CanonicalResponse<I>,
        visible_for_leak_check: VisibleForLeakCheck,
        span: I::Span,
    ) -> (NestedNormalizationGoals<I>, Certainty)where
        D: SolverDelegate<Interner = I>,
        I: Interner,

Expand description

After calling a canonical query, we apply the constraints returned by the query using this function.

This happens in three steps:

- we instantiate the bound variables of the query response
- we unify the `var_values` of the response with the `original_values`
- we apply the `external_constraints` returned by the query, returning the `normalization_nested_goals`