macro_rules! resolve_inner {
($ctx:ident, $expr:expr) => { ... };
}Expand description
Resolves the inner type of a given expression.
Expects a &mut ExpressionContext and a Handle<Expression>.
Returns a &ir::TypeInner.
Ideally, we would simply have a function that takes a &mut ExpressionContext
and returns a &TypeResolution. Unfortunately, this leads the borrow checker
to conclude that the mutable borrow lasts for as long as we are using the
&TypeResolution, so we can’t use the ExpressionContext for anything else -
like, say, resolving another operand’s type. Using a macro that expands to
two separate calls, only the first of which needs a &mut,
lets the borrow checker see that the mutable borrow is over.