A bit like NoSolution, but for functions that normally cannot fail unless they accessed
opaues. (See TypingMode::ErasedNotCoherence). Getting OpaquesAccessed doesnโt mean there
truly is no solution. It just means that we want to bail out of the current query as fast as
possible, possibly by returning NoSolution if thatโs fastest. This is okay because when you get
OpaquesAccessed weโre guaranteed that weโre going to retry this query in the original typing
mode to get the correct answer.
Which trait candidates should be preferred over other candidates? By default, prefer where
bounds over alias bounds. For marker traits, prefer alias bounds over where bounds.
Supporting not-yet-defined opaque types in HIR typeck is somewhat
challenging. Ideally weโd normalize them to a new inference variable
and just defer type inference which relies on the opaque until weโve
constrained the hidden type.
Helper for InferCtxt::ty_or_const_infer_var_changed (see comment on that), used
for traits::fulfillโs list of stalled_on inference variables and for merging
ambiguity errors caused by the same inference variable during error reporting.
Whether the given region constraint should be considered/ignored for
leak check. In most part of the compiler, this should be Yes, except
for applying constraints from the nested goals in next-solver.
Unreachable is used in places in which leak check isnโt done, e.g.
borrowck.