]> git.lizzy.rs Git - rust.git/commit
Auto merge of #35764 - eddyb:byegone, r=nikomatsakis
authorbors <bors@rust-lang.org>
Wed, 24 Aug 2016 21:57:34 +0000 (14:57 -0700)
committerGitHub <noreply@github.com>
Wed, 24 Aug 2016 21:57:34 +0000 (14:57 -0700)
commite9bc1bac8c7664fb1b487879b3fbd56221f6a721
tree2a0739eb6851ceb45abcc38d7fe8d8ff18e71962
parent03e23c7f9a10b18e1687bfd92c6807e9342aa00b
parent25cf8001b1352fdaccdd1d71071c941f99acc2a1
Auto merge of #35764 - eddyb:byegone, r=nikomatsakis

Remove the old AST-based backend from rustc_trans.

Starting with Rust 1.13, `--disable-orbit` , `-Z orbit=off` and `#[rustc_no_mir]` have been removed.
Only the new MIR backend is left in the compiler, and only early const_eval uses ASTs from other crates.

Filling drop (previously "zeroing drop"), `#[unsafe_no_drop_flag]` and associated unstable APIs are gone.
Implementing `Drop` doesn't add a flag anymore to the type, all of the dynamic drop is function local.
This is a [breaking-change], please use `Option::None` and/or `mem::forget` if you are unsure about your ability to prevent/control the drop of a value. In the future, `union` will be usable in some such cases.

**NOTE**: DO NOT MERGE before we get the new beta as the stage0, there's some cruft to remove.

All of this will massively simplify any efforts to implement (and as such it blocks) features such as `union`s, safe use of `#[packed]` or new type layout optimizations, not to mention many other experiments.