Diagnose unavailable closures without types
In complex situations, a type would not be assigned to an abstract
closure that was the declaration context of the declaration being
checked. This used to cause crashes because you couldn't query a closure
on whether it was an async context if it didn't have a type assigned.
This behaviour has been updated to lazily compute the function decl ext
info if the type hasn't already been assigned. This means that calling
`AbstractClosureExpr::isAsyncContext` is now safe, even when a type has
not yet been assigned.
The request change was added in commit
c3b6160af839732c4f55a7303aab9eb6f2c13cf0.