public override void Visit(BlockStatement node)
 {
     Debug.Assert(CurrentScope is IVariableScope);
     var blockScope = new LocalScope((IVariableScope) CurrentScope);
     node.Scope = blockScope;
     EnterScope(blockScope);
 }
 public override void Visit(BlockStatement node)
 {
     if (_pass == 0)
     {
         CheckStatements(node.Statements);
     }
 }
 public override void Exit(BlockStatement node)
 {
     ExitScope();
 }