auto merge of #11585 : nikomatsakis/rust/issue-3511-rvalue-lifetimes, r=pcwalton

Major changes:

- Define temporary scopes in a syntax-based way that basically defaults
  to the innermost statement or conditional block, except for in
  a `let` initializer, where we default to the innermost block. Rules
  are documented in the code, but not in the manual (yet).
  See new test run-pass/cleanup-value-scopes.rs for examples.
- Refactors Datum to better define cleanup roles.
- Refactor cleanup scopes to not be tied to basic blocks, permitting
  us to have a very large number of scopes (one per AST node).
- Introduce nascent documentation in trans/doc.rs covering datums and
  cleanup in a more comprehensive way.

r? @pcwalton
This commit is contained in:
bors 2014-01-17 07:56:45 -08:00
commit 4098327b1f
72 changed files with 5064 additions and 3754 deletions

View file

@ -292,12 +292,6 @@ extern "rust-intrinsic" {
/// elements.
pub fn size_of<T>() -> uint;
/// Move a value to a memory location containing a value.
///
/// Drop glue is run on the destination, which must contain a
/// valid Rust value.
pub fn move_val<T>(dst: &mut T, src: T);
/// Move a value to an uninitialized memory location.
///
/// Drop glue is not run on the destination.