about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-02-19 22:03:54 -0800
committerAlex Crichton <alex@alexcrichton.com>2016-02-24 11:01:29 -0800
commit128283347086ff307b39c8c848d0831c6dcf576a (patch)
treeb4ac5fba22c645ba0e4743049b0e22ef2cdbe57f /src/rustllvm/RustWrapper.cpp
parent0ef8d426050318934d16d962325ec002eaf0c29d (diff)
downloadrust-128283347086ff307b39c8c848d0831c6dcf576a.tar.gz
rust-128283347086ff307b39c8c848d0831c6dcf576a.zip
rustc: Refactor how unstable flags are handled
This commit adds support for *truly* unstable options in the compiler, as well
as adding warnings for the start of the deprecation path of
unstable-but-not-really options. Specifically, the following behavior is now in
place for handling unstable options:

* As before, an unconditional error is emitted if an unstable option is passed
  and the `-Z unstable-options` flag is not present. Note that passing another
  `-Z` flag does not require passing `-Z unstable-options` as well.
* New flags added to the compiler will be in the `Unstable` category as opposed
  to the `UnstableButNotReally` category which means they will unconditionally
  emit an error when used on stable.
* All current flags are in a category where they will emit warnings when used
  that the option will soon be a hard error.

Also as before, it is intended that `-Z` is akin to `#![feature]` in a crate
where it is required to unlock unstable functionality. A nightly compiler which
is used without any `-Z` flags should only be exercising stable behavior.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions