]> git.lizzy.rs Git - rust.git/commit
Rollup merge of #31793 - alexcrichton:add-real-option-gating, r=nikomatsakis
authorManish Goregaokar <manishsmail@gmail.com>
Thu, 25 Feb 2016 06:11:01 +0000 (11:41 +0530)
committerManish Goregaokar <manishsmail@gmail.com>
Thu, 25 Feb 2016 06:11:01 +0000 (11:41 +0530)
commit05485be02f25526abeeb1e715abe532a31e0acd6
tree16d12c84532abaaa22725b89da5ea09347877da4
parenta48f95879d4a6a62176ad37910782ede9f24f30f
parent128283347086ff307b39c8c848d0831c6dcf576a
Rollup merge of #31793 - alexcrichton:add-real-option-gating, r=nikomatsakis

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.