code: @Override
  	public ControlFlow visitBlock(Stmt.Block block, DefinitelyAssignedSet environment) {
  		DefinitelyAssignedSet nextEnvironment = environment;
  		DefinitelyAssignedSet breakEnvironment = null;
  		for(int i=0;i!=block.size();++i) {
  			Stmt s = block.get(i);
  			ControlFlow nf = visitStatement(s, nextEnvironment);
  			nextEnvironment = nf.nextEnvironment;
  			breakEnvironment = join(breakEnvironment,nf.breakEnvironment);
  			// NOTE: following can arise when block contains unreachable code.
  			if(nextEnvironment == null) {
  				break;
  			}
  		}
  		return new ControlFlow(nextEnvironment,breakEnvironment);
  	}
docs: Check that all variables used in a given list of statements are
  definitely assigned. Furthermore, update the set of definitely assigned
  variables to include any which are definitely assigned at the end of
  these statements.
  
  @param block
  The list of statements to visit.
  @param environment
  The set of variables which are definitely assigned.