{"ast_node_type":"function","tokens":[{"end":77,"kind":"keyword","start":0,"text":"pub(crate)"}]}
    pub(crate) fn try_obligation(&mut self, goal: Goal) -> Option<Solution> {
    /// choice (during e.g. method resolution or deref).
        let in_env = InEnvironment::new(&self.trait_env.env, goal);