Second bullet point of block static semantics and similarly for function body static semantics.
E.g.
let x;
{
var x; // error (already works)
let y;
var y; // should be an error (doesn't work)
{
var y; // should also be an error (doesn't work)
}
}
This applies for var declarations hoisting past all lexical declarations, i.e. let, const, class, function (and generators and async functions).