code: private Environment checkDoWhile(Stmt.DoWhile stmt, Environment environment, EnclosingScope scope) {
  		// Type check loop body
  		environment = checkBlock(stmt.getBody(), environment, scope);
  		// Type check invariants
  		checkConditions(stmt.getInvariant(), true, environment);
  		// Determine and update modified variables
  		Tuple<Decl.Variable> modified = FlowTypeUtils.determineModifiedVariables(stmt.getBody());
  		stmt.setModified(stmt.getHeap().allocate(modified));
  		// Type condition assuming its false to represent the terminated loop.
  		// This is important if the condition contains a type test, as we'll
  		// know that doesn't hold here.
  		return checkCondition(stmt.getCondition(), false, environment);
  	}
docs: Type check a do-while statement.
  
  @param stmt
  Statement to type check
  @param environment
  Determines the type of all variables immediately going into this
  block
  @return
  @throws ResolveError
  If a named type within this statement cannot be resolved within
  the enclosing project.