{"push_id":986874083,"size":1,"distinct_size":1,"ref":"refs/heads/add-real-option-gating","head":"b48cb7e5cb7d4caba3c43cec50bb6e119c779900","before":"9581134e3dfcea4277d5ea3c7e527089e977397d","commits":[{"sha":"b48cb7e5cb7d4caba3c43cec50bb6e119c779900","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"rustc: Refactor how unstable flags are handled\n\nThis commit adds support for *truly* unstable options in the compiler, as well\nas adding warnings for the start of the deprecation path of\nunstable-but-not-really options. Specifically, the following behavior is now in\nplace for handling unstable options:\n\n* As before, an unconditional error is emitted if an unstable option is passed\n  and the `-Z unstable-options` flag is not present. Note that passing another\n  `-Z` flag does not require passing `-Z unstable-options` as well.\n* New flags added to the compiler will be in the `Unstable` category as opposed\n  to the `UnstableButNotReally` category which means they will unconditionally\n  emit an error when used on stable.\n* All current flags are in a category where they will emit warnings when used\n  that the option will soon be a hard error.\n\nAlso as before, it is intended that `-Z` is akin to `#![feature]` in a crate\nwhere it is required to unlock unstable functionality. A nightly compiler which\nis used without any `-Z` flags should only be exercising stable behavior.","distinct":true,"url":"https://api.github.com/repos/alexcrichton/rust/commits/b48cb7e5cb7d4caba3c43cec50bb6e119c779900"}]}